SpringMVC 基本注解[@Resource,@Autowired,@Component]
2016-03-18 00:00
603 查看
使用spring注解@Autowired,@Component需要先配置schema:
xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd"[/code] 显式的配置<context:annotation-config/>
该配置隐式注册了多个对注解进行解析的处理器,例如:AutowiredAnnotationBeanPostProcessor CommonAnnotationBeanPostProcessor PersistenceAnnotationBeanPostProcessor RequiredAnnotationBeanPostProcessor
另外:比较建议使用@Resource ,而不是@Autowired注解,因为Autowired是spring提供的,而Resource是J2EE提供的
@Resource注解说明:
@Resource和@Autowired一样,也可以标注在字段或属性的setter方法上
@Resource默认是按照名称装配,名称可以根据name属性来指定。当找不到与名称匹配的bean时,才会按类型装配
若注解标注在字段上,且未指定name属性,则默认取字段名作为bean名称,寻找依赖对象
若注解标注在setter上且未指定name属性,则默认取属性名作为bean名称寻找依赖对象
如果没有指定name属性,并且按照默认的名称仍然找不到依赖对象时,它就会按照类型匹配,但只要指定了name属性,就只能按照名称匹配了
@Autowired注解说明:
@Autowired默认按照类型装配对象的,默认情况下它要求依赖对象必须存在
如果允许null值,可以设置它的required属性为false,如@Autowired(required=false)
若想要按照名称装配,可以结合@Qualifier注解一起使用,如:
@Autowired(required=false)
@Qualifier("personDaoBean")
在spring 2.5以上,我们引入组件自动扫描机制,它可以在classpath下寻找标注了@Service,@Repository,@Autowired,@Component注解的类,并把他们放入到spring的容器中管理,他的作用和在xml中使用bean节点配置组件一样,
使用自动扫描机制,需要配置<context:component-scan base-package="com.jadyer"/> ,启动自动扫描其中base-package指定需要扫描的包,它会扫描指定包中的类和子包里面类
@Service用于标注业务层组件
@Repository用于标注数据访问组件,即DAO组件
@Controller用于标注控制层组件,如Struts中的Action
@Component泛指组件,当组件不要好归类时,可以使用这个注解进行标注
相关文章推荐
- win下配置eclipse使其能像MyEclipse一样打开当前文件所在目录
- java开发环境配置
- Eclipse插件之 Activiti Designer
- FastDFS的安装,配置与使用(java)
- Java_在其他类中调用ToolTipManager的方法,ex.调用ToolTipManager的setInitialDelay()方法
- 【JAVA】41、匿名对象
- 设计模式之------行为型模式(一)-----中介者模式
- java.lang.ClassNotFoundException: org.springframework.web.servlet.DispatcherServlet
- javaweb学习总结(二十一)——JavaWeb的两种开发模式
- java定时执行job 非quartz
- java定时执行job 非quartz
- java SE基础知识初记(1)i
- 当JAVA WEB服务器端有一个执行时间长的方法,应该如何处理?
- JAVA 界面 - 记事本
- Java编程体验:线程的7种状态及相互转换(图)
- java web开发中的多线程应用?
- 做java的web开发有用过多线程吗
- 解决一些eclipse无法正常启动的问题
- java继承中的this用法
- java第一步