2002 Rod Johnon Spring 2003 ,IOC Aop 产品:Spring data,spring boot,spring cloud,spring framework ,spring social
控制反转 :将 创建对象、属性值 的方式 进行了翻转,从new、setXxx() 翻转为了 从springIOC容器getBean() 依赖注入:将属性值 注入给了属性,将属性 注入给了bean,将bean注入给了ioc容器; 无论要什么对象,都可以直接去springioc容器中获取,而不需要自己操作(new\setXxx()) 因此之后的 ioc 分为2步:1 先给springioc中存放对象并赋值 2 拿
实体类
实现对应的getter and setter 方法 public class Student { private int stuNo ; private String stuName ; private int stuAge ; }加入IOC容器
id:唯一标识符 class:指定类型 <bean id="student" class="org.zq.entity.Student"> <property name="stuNo" value="2"></property> <property name="stuName" value="ls"></property> <property name="stuAge" value="24"></property> <!-- property:该class所代表的类的属性 name:属性名 value:属性值 --> </bean>IOC容器赋值:如果是简单类型(8个基本+String),value; 如果是对象类型,ref=“需要引用的id值”,因此实现了 对象与对象之间的依赖关系 conext.getBean(需要获取的bean的id值)
默认使用的是 set方法(); 依赖注入底层是通过反射实现的。 ** 标签:<property…>
<constructor-arg value=“ls” type=“String” index=“0” name=“name”></constructor-arg>
相关属性 index: 参数的索引位 从 0 开始(不推荐使用) name:参数名 (推荐使用) type: 参数类型 value: 参数值<bean id=“teacher” class=“org.zq.entity.Teacher” p:age=“25” p:name=“ww” ></bean>
注意: 使用p命名空间注入时, 需要先引入p命名空间 xmlns:p="http://www.springframework.org/schema/p" 简单类型: p:属性名="属性值" 引用类型(除了String外): p:属性名-ref="引用的id" 注意多个 p赋值的时候 要有空格。某些可以混着用但是不建
可以在头文件中 一次性将该ioc容器的所有bean 统一设置成自动装配:
<beans xmlns="http://www.springframework.org/schema/beans" ... default-autowire="byName">自动装配虽然可以减少代码量,但是会降低程序的可读性,使用时需要谨慎。
使用注解定义bean:通过注解的形式 将bean以及相应的属性值 放入ioc容器
<context:component-scan base-package="org.zq.dao">@Component细化:
dao层注解:@Repository service层注解:@Service 控制器层注解:@Controller