注入属性Autowire和Qualifier
@Autowire根据属性类型注入
使用:
在server包使用注解@server创建对象
在dao包使用注解@Repository创建对象
在dao包使用注解@Autowire装载server包对象
具体实现:
- 在server包创建UserServer类,并加注解@server
- 在dao包创建UserDao接口和UserDaoImpl实现类,在实现类加注解@Repository
- 在server包的UserServer类中引入UserDao类,并加注解@Autowire
- 在xml中配置识别注解的标签
- 测试
代码:
- dao层
//接口 package com.guodaxia.spring5.dao; public interface UserDao { void add(); } //实现类 package com.guodaxia.spring5.dao; import org.springframework.stereotype.Repository; @Repository public class UserDaoImpl implements UserDao{ @Override public void add() { System.out.println("dao ing ....."); } }
- server层
package com.guodaxia.spring5.service; import com.guodaxia.spring5.dao.UserDao; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @Service public class UserService { //重点关注!!!!! @Autowired private UserDao userDao; public void test(){ System.out.println("service ing,,,,,"); userDao.add(); } }
- 测试层
@Test public void testService(){ ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml"); UserService userService = context.getBean("userService", UserService.class); System.out.println(userService); userService.test(); }
一个接口有多个实现类,@Autowire根据类型注入,如果实现类类型一样,则无法判别是要实现那个实现类,所以有了@Qualifier注解
@Qualifier根据属性名称注入
- 很简单,在上文代码的基础上,在UserServer类中引入UserDao类时,再加上一个注解@Qualifier;
- 并且在server包和dao包的实现类上的注解加个相同的value值即可,好比id匹配具体哪个实现类。
比任何人都要努力
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)