1、 Spring依赖注入
1、 Set 方法注入 ,调用setXxx()方法为属性(依赖)赋值
2、 构造器注入,调用构造器时,赋值
1.1 Set注入
男注意: name: 需要赋值的属性名value : 直接赋值 8大基本数据类型(含包装类) 和Stringref: 如果属性是自定义的引用数据类型使用内部bean 配置:男
1.2构造器注入
1)构造器注入的基本使用
X7说明:通过name 属性 区分参数说明:通过 index 属性 区分参数
2)如果参数为引用类型,则引用其他bean赋值(ref属性)
X7
1.3 集合注入
苹果香蕉梨子宝马别克大众
2、 Spring 自动注入
2.1手动注入依赖
自动注入,就是把注入过程交个IOC容器,但是要指明注入的方式
2.2 byType 注入
byType: 指的是根据依赖的类型从IOC从中选择一个同类型的 bean注入
Exception encountered during context initialization - cancelling refresh attempt: nested exception is org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'com.nm.spring.pojo.Car' available: expected single matching bean but found 2: cc,dd 期望1但是找到2个,容器无法确定
"cc" class="com.nm.spring.pojo.Car" autowire-candidate="false">
autowire-candidate="false" : 表示当前bean为 非候选bean,不参与注入。
autowire-candidate="true": 表示当前bean 为候选bean 参入注入
2.3 byName:注入
byName注入指的是,根据依赖的名字从IOC容器中选择 同名bena 注入。
2.4 constructor 注入
Constructor注入 指的是根据构造器的参数类型 从ioc容器中选择类型一致的注入,和byType一致,如果有多个bean同时注入人注入要求的bean则注入失败
13.5 No: 不自动注入
12.6 Default: 默认值 ,取的是NO
3、 Spring 注解配置
"com.nm.spring.pojo"/>
使用该标签需要引入名字空间:
1
第 1 页
@Component("名字") : 组件注解,没有业务含义的注解使用,在类级别 名字可省略,如果省略,则为类名首字母小写后的类名作为名字相当于 在spring 配置文件中 使用标签注册一个对象到IOC容器
@Value("值"):为属性赋值(基本类型及其包装类型和String)
@Service("名字"):服务层组件注解,通常业务逻辑层使用,如UserServiceIml
@Repository("名字"):持久层注解,通常用于数据访问层,如UserDaoImpl
@Controller("名字"):控制器层注解,通常用于SpringMVC中的控制器类
@Autowired(required=true|false):自动注入,根据默认类型byType注入
required:表示是否为必须,如果为true, 又找不到注入的bean 则报错 默认为 true,该注解可以再字段,set方法,构造器上使用
@Qualifier("名字"):和@Autowired配合使用,可以根据名字注入byName
@Resource(name="bean名字"): JSR250提供的注解,根据名字注入
@Configuration:配置类,该注解表示这个类是一个配置类,其作用等价于Spring XML配置文件
@Bean("名字"):等价于 xml 中书写 注册bean