spring注解⽀持
Spring基于注解实现Bean定义⽀持如下三种注解:
Spring⾃带的@Component注解及扩展@Repository、@Service、@Controller
JSR-250 1.1版本中中定义的@ManagedBean注解,是Java EE 6标准规范之⼀,不包括在JDK中,需要在应⽤服务器环境使⽤(如Jboss)
JSR-330的@Named注解
对应的Bean注⼊注解:
Spring的@Autowired
JSR-250的@Resource
JSR-330的@Inject
Bean定义扫描:
<context:component-scan
base-package=""
resource-pattern="**/*.class"
name-generator="t.annotation.AnnotationBeanNameGenerator"
use-default-filters="true"
annotation-config="true">
<context:include-filter type="aspectj" expression=""/>
<context:exclude-filter type="regex" expression=""/>
</context:component-scan>
base-package:表⽰扫描注解类的开始位置,即将在指定的包中扫描,其他包中的注解类将不被扫描,默认将扫描所有类路径;
resource-pattern:表⽰扫描注解类的后缀匹配模式,即“base-package+resource-pattern”将组成匹配模式⽤于匹配类路径中的组件,默认后缀为“**/*.class”,即指定包下的所有以.class结尾的类⽂件;
name-generator:默认情况下的Bean标识符⽣成策略,默认是AnnotationBeanNameGenerator,其将⽣成以⼩写开头的类名(不包括包名);可以⾃定义⾃⼰的标识符⽣成策略;
use-default-filters:默认为true表⽰过滤@Component、@ManagedBean、@Named注解的类,如果改为false默认将不过滤这些默认的注解来定义Bean,即这些注解类不能被过滤到,即不能通过这些注解进⾏Bean定义;
annotation-config:表⽰是否⾃动⽀持注解实现Bean依赖注⼊,默认⽀持,如果设置为false,将关闭⽀持注解的依赖注⼊,需要通过<context:annotation-config/>开启。
默认情况下将⾃动过滤@Component、@ManagedBean、@Named注解的类并将其注册为Spring管理Bean,可以通过在
<context:component-scan>标签中指定⾃定义过滤器将过滤到匹配条件的类注册为Spring管理Bean,具体定义⽅式如下:
<context:include-filter type="aspectj" expression=""/>
<context:exclude-filter type="regex" expression=""/>
<context:include-filter>:表⽰过滤到的类将被注册为Spring管理Bean;
<context:exclude-filter>:表⽰过滤到的类将不被注册为Spring管理Bean,它⽐<context:include-filter>具有更⾼优先级;
type:表⽰过滤器类型,⽬前⽀持注解类型、类类型、正则表达式、aspectj表达式过滤器,当然也可以⾃定义⾃⼰的过滤器,实现ype.filter.TypeFilter即可;
expression:表⽰过滤器表达式。
详细配置<context:include-filter>和<context:exclude-filter>请见:
详细Bean定义注解请见:
详细Bean注⼊注解请见:
详细Bean配置元数据注解请见:
详细annotation-config含义解说请见:
正则匹配注解
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论