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 注解篇的更多相关文章

  1. [spring]Bean注入——使用注解代替xml配置

    使用注解编程,主要是为了替代xml文件,使开发更加快速. 一.使用注解前提: <?xml version="1.0" encoding="UTF-8"?& ...

  2. Spring依赖注入:注解注入总结

    更多11   spring   依赖注入   注解   java 注解注入顾名思义就是通过注解来实现注入,Spring和注入相关的常见注解有Autowired.Resource.Qualifier.S ...

  3. Spring依赖注入:注解注入

    注解注入顾名思义就是通过注解来实现注入, Spring和注入相关的常见注解有Autowired.Resource.Qualifier.Service.Controller.Repository.Com ...

  4. Spring 反射注入+全注解注入

    Spring IoC容器会先把所有的Bean都进行实例化,不管是要用到的火鼠用不到的,如果你想暂时不进行Bean的实例化,要用到属性lazy-init="true". Spring ...

  5. [spring]Bean注入——在XML中配置

    Bean注入的方式有两种: 一.在XML中配置 属性注入 构造函数注入 工厂方法注入 二.使用注解的方式注入@Autowired,@Resource,@Required 本文首先讲解在XML中配置的注 ...

  6. spring+cxf 开发webService(主要是记录遇到spring bean注入不进来的解决方法)

    这里不介绍原理,只是记录自己spring+cxf的开发过程和遇到的问题 场景:第三方公司需要调用我们的业务系统,以xml报文的形式传递数据,之后我们解析报文存储到我们数据库生成业务单据: WebSer ...

  7. Spring bean注入方式

    版权声明:本文为博主原创文章,如需转载请标注转载地址. 博客地址:http://www.cnblogs.com/caoyc/p/5619525.html  Spring bean提供了3中注入方式:属 ...

  8. spring bean 注入

    概念 http://developer.51cto.com/art/200610/33311.htm http://kb.cnblogs.com/page/45266/ ==https://www.c ...

  9. Spring依赖注入—@Resource注解使用

    1.@Autowired默认按类型装配(这个注解是属业spring的),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowire ...

随机推荐

  1. django orm如何作一个优雅一点的filter?

    如果有N多fitler条件, 单独放在一个长语句里显然不好看. 还好, django支持字典方式的过滤条件, 写法大约与单独的长语里差不多. 如下: def get_queryset(self): f ...

  2. vs2013设置语言

    设置语言格式 [工具]-[选项]-[国际化]

  3. [实战]MVC5+EF6+MySql企业网盘实战(25)——种子列表

    写在前面 上篇文章实现了视频列表,本篇文章继续实现其他的文件列表.功能相似.这里就不再赘述. 系列文章 [EF]vs15+ef6+mysql code first方式 [实战]MVC5+EF6+MyS ...

  4. bzoj 1856 卡特兰数

    复习了一下卡特兰数.. #include<bits/stdc++.h> #define LL long long #define fi first #define se second #d ...

  5. openssl asn.1 生成DER文件,把DER文件转换成内部数据结构

    1 在实现之前,先来介绍如何生成der文件,有了源数据才能进行验证和测试.生成的方法是使用在openssl的命令中使用*asn1parse*根据配置文件来生成.详情如下: 1.1 创建配置文件test ...

  6. Qt中translate、tr关系 与中文问题

    原文请看:http://hi.baidu.com/dbzhang800/item/d850488767bdc3cdee083d43 题外话:何时使用 tr ? 在论坛中漂,经常遇到有人遇到tr相关的问 ...

  7. RecyclerView悬浮标题

    效果图:        1.顶部会悬浮章的部分 2.第二章上滑会推挤第一章 3.第二章下拉会带出第一章 4.并不是所有时候都有悬浮部分(为什么这条标红,因为市面上几乎所有的悬浮都是必须存在且在顶部,害 ...

  8. CodeForcs 797E Array Queries

    $dp$预处理,暴力. 如果$k > sqrt(n)$,那么答案不会超过$sqrt(n)$,暴力模拟即可.如果$k <= sqrt(n)$,那么可以$dp$预处理打表. #include ...

  9. Python类总结-析构函数和__call__方法

    class Foo: def __init__(self): pass #析构函数 def __del__(self): print('解释器要销毁我了,我要做最后一次呐喊') def __call_ ...

  10. Arduino可穿戴教程之第一个程序——上传运行程序(四)

    Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5  上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...