`
youyu4
  • 浏览: 440367 次
社区版块
存档分类
最新评论

<context:annotation-config/>和<context:component-scan/>

 
阅读更多

<context:annotation-config/>和<context:component-scan/>

 

在配置文件中加上这个配置后,就会在spring中注册下面4个BeanPostProcessor

1. AutowiredAnnotationBeanPostProcessor

2. CommonAnnotationBeanPostProcessor

3. PersistenceAnnotationBeanPostProcessor 

4. RequiredAnnotationBeanPostProcessor 

 

 

 

为什么要注册这些BeanPostProcessor

 

1. 如果要使用@Autowired,就要实现在容器中注册 AutowiredAnnotationBeanPostProcessor

 

2. 如果想使用@ Resource 、@ PostConstruct、@ PreDestroy等注解就必须注册 CommonAnnotationBeanPostProcessor

 

3. 如果想使用@PersistenceContext注解,就必须注册PersistenceAnnotationBeanPostProcessor

 

4. 如果想使用 @Required的注解,就必须声明RequiredAnnotationBeanPostProcessor

 

 

 

当然,可以用下面这种方式注册

<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor "/> 

这种方式的优点是单独明确,缺点是每个使用都要注册一次

 

因为这些注释通常都会用到,所以直接用<context:annotation-config/>,自动帮你注册了这些,更加方便开发

 

 

 

还有个不需要<context:annotation-config/>的方法

 

一般我们要用<context:component-scan base-package=”XX.XX”/> 来扫描包,有了该配置就能自动注入上面的几个BeanPostProcessor,所以加上这个扫描包的配置后,就能把<context:annotation-config/>去掉了。

分享到:
评论

相关推荐

    异常解决:错误:namespace element 'annotation-config' … on JDK 1.5 and higher

    2. **XML配置问题**:确保你的Spring配置文件(如`applicationContext.xml`)正确包含了`&lt;context:component-scan&gt;`或`&lt;context:annotation-config&gt;`元素,它们是启用注解配置的关键。 3. **编译器设置**:检查你的...

    spring_MVC源码

    10. &lt;context:annotation-config /&gt; 11. &lt;!-- 把标记了@Controller注解的类转换为bean --&gt; 12. &lt;context:component-scan base-package="com.mvc.controller" /&gt; 13. &lt;!-- 启动Spring MVC的注解功能,...

    Spring注解详解

    &lt;context:annotation-config /&gt; ``` 这将隐式地向 Spring 容器注册 `AutowiredAnnotationBeanPostProcessor`、`CommonAnnotationBeanPostProcessor`、`PersistenceAnnotationBeanPostProcessor` 和 `...

    Spring的Annotation配置相关讲义

    `&lt;context:component-scan&gt;`元素用于指定需要扫描的包,这样Spring会自动发现这些包下标记了如`@Component`、`@Service`、`@Repository`等注解的类,并将它们注册为Bean。 接着,我们看DAO层的配置。使用`@...

    spring mvc基础

    &lt;param-value&gt;classpath:config/springAnnotation-*.xml&lt;/param-value&gt; &lt;/context-param&gt; &lt;!-- 启动Spring上下文监听器 --&gt; &lt;listener&gt; &lt;listener-class&gt;org.springframework.web.context....

    springMVC框架搭建及详解

    &lt;context:component-scan base-package="com.example.controller"/&gt; &lt;!-- 视图解析器 --&gt; &lt;bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property ...

    springmvc+mybatis+oracle

    &lt;context:component-scan base-package="com.example.controller" /&gt; &lt;!-- 自定义拦截器配置 --&gt; &lt;mvc:interceptors&gt; &lt;bean class="com.example.interceptor.MyInterceptor" /&gt; &lt;/mvc:interceptors&gt; &lt;/beans&gt; ...

    开发框架搭建

    &lt;context:component-scan base-package="cn.springmvc"/&gt; &lt;!-- 配置MyBatis SqlSessionFactory --&gt; &lt;bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"&gt; &lt;property name=...

    SSH全注解环境搭建

    &lt;context:annotation-config/&gt; &lt;context:component-scan base-package="com.zhaolongedu"/&gt; ``` - 配置Spring事务管理器: ```xml &lt;bean id="transactionManager" class="org.springframework.orm.hibernate5...

    集成springmvc spring hibernate的配置

    &lt;context:annotation-config /&gt; &lt;context:component-scan base-package="com.mvc.*"&gt; &lt;context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /&gt; &lt;/context:component...

    struts2.3+hibernate3.6+spring3.1整合的纯xml配置的小项目

    &lt;context:component-scan base-package="org.whvcse"&gt;&lt;/context:component-scan&gt; &lt;tx:annotation-driven transaction-manager="txManager" /&gt; &lt;!-- &lt;aop:config&gt; &lt;aop:pointcut id="defaultServiceOperation" ...

    维生药业小项目 SSH简单学习项目

    &lt;context:annotation-config/&gt; &lt;bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"&gt; &lt;property name="driverClass" value="com.mysql.jdbc.Driver"&gt;&lt;/property&gt; &lt;property name="jdbc...

    使用Spring2.5的Autowired实现注释型的IOC

    在上面的配置文件中,我们使用了 `&lt;context:annotation-config/&gt;` 和 `&lt;context:component-scan base-package="testspring.main"/&gt;` 两个标签。 `&lt;context:annotation-config/&gt;` 用于启用注释型的 IOC,而 `&lt;context...

    spring注解详细介绍

    `&lt;context:annotation-config/&gt;` 和 `&lt;context:component-scan base-package="需要实现注入的类所在包"/&gt;` 是两个重要的 XML 配置元素,它们用于开启注解支持和指定扫描的包范围。 - `&lt;context:annotation-config/&gt;...

    使用springmvc框架编写helloworld,使用eclispe开发工具

    &lt;context:component-scan base-package="com.example.springmvc.controller"/&gt; &lt;mvc:annotation-driven/&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; &lt;property name=...

    Springboot项目整合JSP页面

    &lt;context:component-scan base-package="com.cloud.JspDemo"/&gt; &lt;mvc:annotation-driven/&gt; &lt;!-- 添加视图解析器 --&gt; &lt;bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"&gt; ...

    springmvc-ibatis

    &lt;context:annotation-config/&gt; &lt;!-- 扫描包 --&gt; &lt;context:component-scan base-package="com.org"/&gt; &lt;bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver...

    Spring AOP配置源码

    &lt;/beans&gt;&lt;context:annotation-config/&gt; &lt;context:component-scan base-package="com.spring.*"/&gt; 两行为开启spring的注解配置 &lt;aop:aspect id="aspect" ref="logIntercepter"&gt; 引入具体的AOP操作类 &lt;aop:pointcut ...

    spring3.2+strut2+hibernate4

    &lt;context:component-scan base-package="*" /&gt; &lt;!-- &lt;aop:config&gt;--&gt; &lt;!-- execution第一个星号代表任何返回类型,第二个星号代表com.sbz.service下的所有包,第三个星号代表所有方法,括号中的两个点代表任何...

    spring mvc

    2. `&lt;context:component-scan&gt;`: - 这个元素告诉Spring扫描指定包及其子包,寻找带有`@Controller`注解的类,并将它们作为bean进行管理。 3. `&lt;mvc:annotation-driven&gt;`(通常也会包含,但此处未提供): - 这个...

Global site tag (gtag.js) - Google Analytics