以下图中UseService文件依赖Userdao对象,能够经过setUserDao11函数设置注入web
配置文件使用property标签配置注入内容
注意:配置文件中name参数的值取至set方法后跟的内容同时首字母小写
例如:set方法名是setUserDao111,那么name的值就是userDao111。面试
有参构造函数注入使用constructor-arg标签name是要注入的构造函数的参数名算法
若是注入的内容是引用类型,就使用‘ref=’给对象赋值,且对象的值必须是在配置文件中注册过的的对象id,如本文中的userServiceId和userDaoId,若是注入内容是普通数据类型,就使用‘value=’赋值,赋的值能够是任意值,无需提早注册。spring
使用注解方法时不须要在配置文件中添加各个要注入的内容,而是在配置文件中配置组件扫描便可,源文件也不在须要定义set方法,构造方法。数据库
在配置文件中添加以下语句,便可让spring扫描com.syx.dao包下的全部注解,不然spring没法识别你注解的内容设计模式
<context:component-scan base-package="com.syx.dao"></context:component-scan>
具体注解方法以下:缓存
// 使用Component添加id为userServiceId的注解至关于配置文件执行了 // <bean id="userServiceId" class="com.syx.dao.service.UserService"/> @Component("userServiceId") public class UserService { // Autowired和Qualifier组合做用是按照名称进行注入,使用至关于 // <constructor-arg name="userdaoparam" ref="userDaoId"></constructor-arg> @Autowired @Qualifier("userDaoId") private UserDao userdaoparam; // Value是按照值进行注入,至关于 // <property name="test_a" value="13"></property> // 注解中的值能够是${...}表达式 @Value("13") private int test_a; public void test() { System.out.println("注入值是" + test_a); userdaoparam.test(); } }
<bean id="userServiceId" class="com.syx.dao.service.UserService"> <property name="userDao11" ref="userDaoId"></property> <!-- test_a 是int类型数据注入值100 --> <property name="test_a" value="100"></property> <!-- strList是List<String>集合,使用以下方法给集合添加两个成员aaa和bbb --> <property name="strList"> <list> <value>aaa</value> <value>bbb</value> <!-- 若是集合List存储的是引用类型数据 需改用ref标签赋值,以下 <ref bean="userDaoId"></ref> --> </list> </property> <!-- userMap是Map<String, String>类型数据 --> <property name="userMap"> <map> <entry key="adc" value="def"></entry> <!-- 若是Map的键值对均为引用类型,那么要使用以下标签进行注入 <entry key-ref="adc" value-ref="def"></entry> --> </map> </property> <!-- properties是一个Properties类型数据 --> <property name="properties"> <props> <prop key="adc">123456</prop > <prop key="adc">fkgj</prop > </props> </property> </bean>
@Qualifier结合@Autowired按名称给字段注入
@Resource(name = “bean_id”)至关于@Qualifier和@Autowired(“bean_id”)配合使用数据结构
欢迎关注公众号:前程有光,领取一线大厂Java面试题总结+各知识点学习思惟导+一份300页pdf文档的Java核心知识点总结! 这些资料的内容都是面试时面试官必问的知识点,篇章包括了不少知识点,其中包括了有基础知识、Java集合、JVM、多线程并发、spring原理、微服务、Netty 与RPC 、Kafka、日记、设计模式、Java算法、数据库、Zookeeper、分布式缓存、数据结构等等。多线程