Spring Bean 注入 2 注解篇
1. 自动装配注解
配置applicationContext.xml开启注解
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 注解使用示例 -->
<!-- 开启注解 -->
<context:annotation-config /> </beans>
注解使用示例
/** Value 注解可以使用SpEL,对基本数据类型完成注入 */
@Value("#{americanA.getName}")
public void setName(String name) {
this.name = name;
} /**
* Autowired表示使用byType自动装配该属性,他除了用在set方法也可以用在其他方法
* required属性表示可以允许找不到匹配的bean,而将该属性置为null
* Qualifier表示制定装配该属性的bean id为"catA"
* */
@Autowired(required = false)
@Qualifier("catA")
public void setPet(Pet pet) {
this.pet = pet;
} /** Inject和Named的使用与Autowired和Qualifier基本相同,只是没有required属性 */
@Inject
@Named("catA")
public void setPet(Pet pet) {
this.pet = pet;
}
2. 自动注册bean注解
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!-- 开启自动检测bean注解 -->
<!-- base-package表示会扫描com.qunar.bean及其所有子包,对使用了自动注册注解的类进行自动注册 -->
<context:component-scan base-package="com.qunar.bean">
<!-- 过滤哪些类需要被注册,type有5种类型 -->
<!-- assignable表示扫描派生与expression指定类型的类 -->
<!-- annotation表示扫描使用了指定注解标注的类 -->
<!-- aspectj表示扫描与expression指定的AspectJ表达式匹配的类 -->
<!-- custom表示使用自定义的TypeFilter实现类 -->
<!-- regex表示过滤雷鸣宇expression指定的正则表达式相匹配的类 -->
<context:include-filter type="assignable"
expression="com.qunar.bean.People" />
<!-- 过滤哪些类不能被注册 -->
<context:exclude-filter type="assignable"
expression="com.qunar.bean.Cat" />
</context:component-scan> </beans>
/**
* @Component 标志该类为Spring组件
* @Controller 标志该类为Spring MVC Controller
* @Repository 标志该类为数据仓库
* @Service 标志该类为服务
*/
@Component("myCat") // 将该类自动注册为bean并将id命名为myCat
public class Cat extends Pet {
public Cat() {
} @Override
public String bark() {
return "miao";
}
}
Spring Bean 注入 2 注解篇的更多相关文章
- [spring]Bean注入——使用注解代替xml配置
使用注解编程,主要是为了替代xml文件,使开发更加快速. 一.使用注解前提: <?xml version="1.0" encoding="UTF-8"?& ...
- Spring依赖注入:注解注入总结
更多11 spring 依赖注入 注解 java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.S ...
- Spring依赖注入:注解注入
注解注入顾名思义就是通过注解来实现注入, Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.Controller.Repository.Com ...
- Spring 反射注入+全注解注入
Spring IoC容器会先把所有的Bean都进行实例化,不管是要用到的火鼠用不到的,如果你想暂时不进行Bean的实例化,要用到属性lazy-init="true". Spring ...
- [spring]Bean注入——在XML中配置
Bean注入的方式有两种: 一.在XML中配置 属性注入 构造函数注入 工厂方法注入 二.使用注解的方式注入@Autowired,@Resource,@Required 本文首先讲解在XML中配置的注 ...
- spring+cxf 开发webService(主要是记录遇到spring bean注入不进来的解决方法)
这里不介绍原理,只是记录自己spring+cxf的开发过程和遇到的问题 场景:第三方公司需要调用我们的业务系统,以xml报文的形式传递数据,之后我们解析报文存储到我们数据库生成业务单据: WebSer ...
- Spring bean注入方式
版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5619525.html Spring bean提供了3中注入方式:属 ...
- spring bean 注入
概念 http://developer.51cto.com/art/200610/33311.htm http://kb.cnblogs.com/page/45266/ ==https://www.c ...
- Spring依赖注入—@Resource注解使用
1.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowire ...
随机推荐
- 使用STL sort对字符串按字典序排序
使用string数组 #include<iostream> #include<string> #include<algorithm> using namespace ...
- bzoj 1106
思路:很容易就能想到统计没两对点之间的未匹配点的个数. 在想怎么用数据结构维护这个东西, 没有想到用树状数组能很巧妙地维护出来, 就写了个莫队... 莫队:暴力维护就好了. #include<b ...
- vue中使用ueditor富文本编辑框
1.把下载的Ueditor资源,放入静态资源static中. 修改ueditor.config.js中的window.UEDITOR_HOME_URL配置,如下图: 2.在main.js中引入以下文件 ...
- [BZOJ4817][SDOI2017]树点涂色(LCT+DFS序线段树)
4817: [Sdoi2017]树点涂色 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 692 Solved: 408[Submit][Status ...
- 【LCA/tarjan】POJ1470-Closest Common Ancestors
[题意] 给出一棵树和多组查询,求以每个节点为LCA的查询数有多少? [错误点] ①读入的时候,注意它的空格是随意的呀!一开始不知道怎么弄,后来看了DISCUSS区大神的话: 询问部分输入: scan ...
- python一行代码开启http
python -m SimpleHTTPServer 8000 & 监听8000端口 浏览器用127.0.0.1:8000访问 如果出现no module named SimpleHTTPSe ...
- SCOJ 4429: frog's dice 最大流
4429: frog's dice 题目连接: http://acm.scu.edu.cn/soj/problem.action?id=4429 Description frog has many d ...
- 2015 百度之星 1001 超级赛亚ACMer 贪心
超级赛亚ACMer Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acdream.info/problem?pid=1750 Descrip ...
- 使用牛顿迭代法和二分法求解一个数的平方根(python语言实现)
#牛顿迭代法 def sqrt1(x): y = 1.0 while abs(y * y - x) > 1e-6: y = (y + x/y)/2 return y #使用二分法 def sqr ...
- Android ButterKnife注解框架使用
这段时间学习了下ButterKnife注解框架,学习的不是特别深入,但是基础也差不多了,在此记录总结一下. ButterKnife是一个Android View注入的库,主要是注解的使用,可以减少很多 ...