2021拉新推广佣金排行榜,seo标题优化的心得总结,wordpress 付费主题 高级功能编辑器,企业站网站建设目录
三种配置机制
测试搭建
byName
byType
使用注解
Autowire
Qualifer
Resource
Autowire和Resource的不同 自动装配是使用spring满足bean依赖的一种条件
三种配置机制
在xml中显式配置#xff1b;在java中显式配置#xff1b;隐式的bean发现机制和自动装配。
…目录
三种配置机制
测试搭建
byName
byType
使用注解
Autowire
Qualifer
Resource
Autowire和Resource的不同 自动装配是使用spring满足bean依赖的一种条件
三种配置机制
在xml中显式配置在java中显式配置隐式的bean发现机制和自动装配。
这里主要介绍第三种自动装配的方式
Spring的自动装配需要从两个角度来实现或者说是两个操作
组件扫描(component scanning)spring会自动发现应用上下文中所创建的bean自动装配(autowiring)spring自动满足bean之间的依赖也就是我们说的IoC/DI
组件扫描和自动装配组合发挥巨大威力使的显示的配置降低到最少。
测试搭建
public class Cat {public void shout() {System.out.println(miao~);}
}
public class Dog {public void shout() {System.out.println(wang~);}
}
public class User {private Cat cat;private Dog dog;private String str;
}
public class User {private Cat cat;private Dog dog;private String str;
}
byName
由于在手动配置xml过程中常常发生字母缺漏和大小写等错误而无法对其进行检查使得开发效率降低。
spring的配置文件
bean iduser classcom.spring.pojo.User autowirebyNameproperty namestr value张三/
/bean
此时我们看到bean中的一个autowire属性他会去寻找类中的set名获得将set去掉并且首字母小写的字符串去spring容器中寻找是否有此字符串名称id的对象。如果有就取出注入如果没有就报空指针异常例如将cat改为catXXX。
byType
确保同一类型的对象在spring容器中唯一。
将bean中的autowire改为byType假如出现两个bean的class类相同就会出现异常因为type是按照类型进行配置
使用注解
准备工作在spring.xml配置文件注入属性
xmlns:contexthttp://www.springframework.org/schema/context
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
Autowire
按照类型进行配置不支持id匹配
public class User {Autowiredprivate Cat cat;Autowiredprivate Dog dog;private String str;public Cat getCat() {return cat;}public Dog getDog() {return dog;}public String getStr() {return str;}
}
补充Autowired(requiredfalse) 说明 false对象可以为nulltrue对象必须存对象不能为null。
Qualifer Autowired是根据类型自动装配的加上Qualifier则可以根据byName的方式自动装配 Qualifier不能单独使用。
还可以在后面假如value属性
Autowired
Qualifier(value cat2)
private Cat cat;
Autowired
Qualifier(value dog2)
private Dog dog;
Resource
Resource如果有name属性则按先name匹配否则再按byname匹配如果都不成功再按bytype
Resource
private Cat cat;
Resource
private Dog dog;
Autowire和Resource的不同
1. Autowired注解是spring的注解,此注解只根据type进行注入,不会去匹配name.但是如果只根据type无法辨别注入对象时,就需要配合使用Qualifier注解
2. 它们的作用相同都是用注解方式注入对象但执行顺序不同。Autowired先byTypeResource先byName。