<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/>去掉了。
相关推荐
2. **XML配置问题**:确保你的Spring配置文件(如`applicationContext.xml`)正确包含了`<context:component-scan>`或`<context:annotation-config>`元素,它们是启用注解配置的关键。 3. **编译器设置**:检查你的...
10. <context:annotation-config /> 11. <!-- 把标记了@Controller注解的类转换为bean --> 12. <context:component-scan base-package="com.mvc.controller" /> 13. <!-- 启动Spring MVC的注解功能,...
<context:annotation-config /> ``` 这将隐式地向 Spring 容器注册 `AutowiredAnnotationBeanPostProcessor`、`CommonAnnotationBeanPostProcessor`、`PersistenceAnnotationBeanPostProcessor` 和 `...
`<context:component-scan>`元素用于指定需要扫描的包,这样Spring会自动发现这些包下标记了如`@Component`、`@Service`、`@Repository`等注解的类,并将它们注册为Bean。 接着,我们看DAO层的配置。使用`@...
<param-value>classpath:config/springAnnotation-*.xml</param-value> </context-param> <!-- 启动Spring上下文监听器 --> <listener> <listener-class>org.springframework.web.context....
<context:component-scan base-package="com.example.controller"/> <!-- 视图解析器 --> <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property ...
<context:component-scan base-package="com.example.controller" /> <!-- 自定义拦截器配置 --> <mvc:interceptors> <bean class="com.example.interceptor.MyInterceptor" /> </mvc:interceptors> </beans> ...
<context:component-scan base-package="cn.springmvc"/> <!-- 配置MyBatis SqlSessionFactory --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name=...
<context:annotation-config/> <context:component-scan base-package="com.zhaolongedu"/> ``` - 配置Spring事务管理器: ```xml <bean id="transactionManager" class="org.springframework.orm.hibernate5...
<context:annotation-config /> <context:component-scan base-package="com.mvc.*"> <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" /> </context:component...
<context:component-scan base-package="org.whvcse"></context:component-scan> <tx:annotation-driven transaction-manager="txManager" /> <!-- <aop:config> <aop:pointcut id="defaultServiceOperation" ...
<context:annotation-config/> <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <property name="driverClass" value="com.mysql.jdbc.Driver"></property> <property name="jdbc...
在上面的配置文件中,我们使用了 `<context:annotation-config/>` 和 `<context:component-scan base-package="testspring.main"/>` 两个标签。 `<context:annotation-config/>` 用于启用注释型的 IOC,而 `<context...
`<context:annotation-config/>` 和 `<context:component-scan base-package="需要实现注入的类所在包"/>` 是两个重要的 XML 配置元素,它们用于开启注解支持和指定扫描的包范围。 - `<context:annotation-config/>...
<context:component-scan base-package="com.example.springmvc.controller"/> <mvc:annotation-driven/> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name=...
<context:component-scan base-package="com.cloud.JspDemo"/> <mvc:annotation-driven/> <!-- 添加视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> ...
<context:annotation-config/> <!-- 扫描包 --> <context:component-scan base-package="com.org"/> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver...
</beans><context:annotation-config/> <context:component-scan base-package="com.spring.*"/> 两行为开启spring的注解配置 <aop:aspect id="aspect" ref="logIntercepter"> 引入具体的AOP操作类 <aop:pointcut ...
<context:component-scan base-package="*" /> <!-- <aop:config>--> <!-- execution第一个星号代表任何返回类型,第二个星号代表com.sbz.service下的所有包,第三个星号代表所有方法,括号中的两个点代表任何...
2. `<context:component-scan>`: - 这个元素告诉Spring扫描指定包及其子包,寻找带有`@Controller`注解的类,并将它们作为bean进行管理。 3. `<mvc:annotation-driven>`(通常也会包含,但此处未提供): - 这个...