spring自动注入的三种方式
@Target({ElementType.CONSTRUCTOR, ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface Autowired {
/**
* Declares whether the annotated dependency is required.
* <p>Defaults to {@code true}.
*/
boolean required() default true;
}
@Configuration
@ComponentScan(basePackages = {"cn.monolog.service"})
public class AutowiredBeanConfig { @Bean(value = "bookDao1")
public BookDao bookDao1() {
BookDao bookDao = new BookDao();
bookDao.setLabel("bookDao1");
return bookDao;
} @Bean(value = "bookDao2")
@Primary
public BookDao bookDao2() {
BookDao bookDao = new BookDao();
bookDao.setLabel("bookDao2");
return bookDao;
} @Bean(value = "bookDao3")
public BookDao bookDao3() {
BookDao bookDao = new BookDao();
bookDao.setLabel("bookDao3");
return bookDao;
}
}
@Autowired
@Qualifier(value = "bookDao1")
private BookDao bookDao3;
@Configuration
@ComponentScan(basePackages = {"cn.monolog.service"})
public class ResourceBeanConfig { @Bean(value = "carDao1")
public CarDao carDao1() {
CarDao carDao = new CarDao();
carDao.setLabel("1");
return carDao;
} @Bean(value = "carDao2")
public CarDao carDao() {
CarDao carDao = new CarDao();
carDao.setLabel("2");
return carDao;
}
}
//自动注入
@Resource
private CarDao carDao2;
//自动注入
@Resource(name = "carDao1")
private CarDao carDao2;
@Configuration
public class InjectBeanConfig {
@Bean(value = "employeeDao1")
public EmployeeDao employeeDao1() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("1");
return employeeDao;
}
}
@Inject
private EmployeeDao employeeDao3;
@Configuration
public class InjectBeanConfig {
@Bean(value = "employeeDao1")
public EmployeeDao employeeDao1() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("1");
return employeeDao;
}
@Bean(value = "employeeDao2")
public EmployeeDao employeeDao2() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("2");
return employeeDao;
}
@Bean(value = "employeeDao3")
public EmployeeDao employeeDao3() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("3");
return employeeDao;
}
}
@Inject
private EmployeeDao employeeDao3;
@Configuration
public class InjectBeanConfig {
@Bean(value = "employeeDao1")
public EmployeeDao employeeDao1() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("1");
return employeeDao;
}
@Bean(value = "employeeDao2")
@Primary
public EmployeeDao employeeDao2() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("2");
return employeeDao;
}
@Bean(value = "employeeDao3")
public EmployeeDao employeeDao3() {
EmployeeDao employeeDao = new EmployeeDao();
employeeDao.setLabel("3");
return employeeDao;
}
}
spring自动注入的三种方式的更多相关文章
- Spring静态注入的三种方式
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/chen1403876161/article/details/53644024Spring静态注入的三 ...
- SSH深度历险记(八) 剖析SSH核心原则+Spring依赖注入的三种方式
于java发育.一类程序猿必须依靠类的其他方法,它是通常new依赖类的方法,然后调用类的实例,这样的发展问题new良好的班统一管理的例子.spring提出了依赖注入的思想,即依赖类不由程 ...
- SSH深度历险(八) 剖析SSH核心原理+Spring依赖注入的三种方式
在java开发中,程序员在某个类中需要依赖其它类的方法,则通常是new一个依赖类再调用类实例的方法,这种开发存在的问题是new的类实例不好统一管理,spring提出了依赖注入的思想,即依 ...
- Spring依赖注入的三种方式
看过几篇关于Spring依赖注入的文章,自己简单总结了一下,大概有三种方式: 1.自动装配 通过配置applicationContext.xml中的标签的default-autowire属性,或者标签 ...
- Spring自动注入的几种方式
---恢复内容开始--- @Service("accountEmailService")public class AccountEmailServiceImpl impleme ...
- Spring基础05——Spring依赖注入的三种方式
Spring支持3种依赖注入的方式:属性注入.构造器注入.工厂 1.属性注入 属性注入即通过setter方法注入Bean的属性或依赖的对象.使用<property>元素,使用name属性指 ...
- spring——依赖注入的三种方式
1 构造器注入(与构造器有直接关系) 默认无参构造 3种构造方式:通过<contructor-arg>调用类中的构造器 下标 <bean id="userService&q ...
- Spring——自动装配的三种实现方式
依赖注入的本质是装配,装配是依赖注入的具体行为 spring会在上下文中自动寻找,并自动给bean装配属性 自动装配的三种方式 (1).在xml中显式的装配 (2).在java中显式的装配 (3).隐 ...
- spring生成EntityManagerFactory的三种方式
spring生成EntityManagerFactory的三种方式 1.LocalEntityManagerFactoryBean只是简单环境中使用.它使用JPA PersistenceProvide ...
随机推荐
- 在Python中使用protobuf2.6.1 string format utf-8 and unicode error
版本信息: protobuf: v2.6.1 python: 2.7 关于在Python中使用protobuf时 string格式字段的编码问题 在python中编码格式多采用utf-8格式.而pro ...
- msdn帮助,离线下载
这是我在msdn下载,如果要看msdn帮助,不是在线看就是visual studio 帮助那下载. 在网速不好的时候msdn看,会让人不爽. 帮助那个下载速度很慢,于是我就去下载离线. 因为微软看不到 ...
- Apache 网站日志分析
1.获得访问前 10 位的 ip 地址 [root@apache ~]# cat access_log |awk '{print $1}'|sort|uniq -c|sort -nr|head -10 ...
- 配置阿里云SLB全站HTTPS集群(以下内容仅为流程,信息可能有些对应不上)
1)登录阿里云购买两台实例 1.1) 按量付费购买两台实例 1.2) 配置网络可以不选择分配外网 1.3) 自定义密码 1.4) 购买完成 1.5) 实例列表 2)购买SLB实例 2.1)按量付费购买 ...
- 锁,Event,semaphore
GIL:全局解释锁:无论开启多少个线程,同一时刻只允许执行一个线程运行(解释器级别,保护数据)锁:两种状态,锁定和未锁定,仅支持两个函数,获得锁和释放锁 多线程抢夺锁时,当某个线程获得锁了,其他的锁都 ...
- mysql 在查字符串字段中 条件参数传为数字0查到与实际数据不匹配问题
比如: CREATE TABLE `e` ( `id` int(11) DEFAULT NULL, `status` varchar(255) DEFAULT NULL, `b` varchar(25 ...
- HTML与CSS中的定位个人分享
定位 static - 默认值 (几乎不用,了解就可以) absolute - 绝对定位,不为元素预留空间,脱离文档流: 如果当前元素的父级元素是<body>元素的话 -> 是相对于 ...
- C++ GUI Qt4学习笔记04
本章将实现应用程序的功能,通过编写底层函数来完成之前的Spreadsheet程序,关于如何载入和保存文件,如何在内存中存储数据,如何实现剪贴板的操作以及如何向QTableWidget中添加对电子指标软 ...
- POJ-3436-ACM Computer Factory(最大流, 输出路径)
链接: https://vjudge.net/problem/POJ-3436#author=0 题意: 为了追求ACM比赛的公平性,所有用作ACM比赛的电脑性能是一样的,而ACM董事会专门有一条生产 ...
- Ubuntu 压缩文件命令
tar -czvf name-of-archive.tar.gz /path/to/directory-or-file -c: Create an archive. -z: Compress the ...