在spring中使用注释时如何编写配置文件;
?xml版本='1.0 '编码='UTF-8 '?span style=' font-size :18 px;'beans xmlns=' http://www . spring framework . org/schema/beans ' xmlns : xsi=' http://www . w3 . org/2001/XMLSchema-instance ' xmlns : context=' http://www . spring framework . org/schema/context ' xmlns : AOP=' 3http://www . spring framework . org/schema/AOP ' xsi : schema location=' http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-beans
以下描述了一些常见注释的使用:
@Autowired私有IReportService reportServiceSpring2.5引入@Autowired标注,可以标记类成员变量、方法和构造函数,完成自动组装。此外,get和set方法可以通过@Autowired来消除。@Autowired会根据类型自动转置。
这里需要注意的是@Resource也可以实现自动组装,但是@Resource默认是按名称自动组装的。
这里简单介绍一下什么是按类型组装,什么是按名称组装。
按类型,当Spring容器中有一个与指定属性类型相同的bean时,会自动组装该属性;如果有多个这种类型的bean,则会抛出一个异常,并指出不能使用按类型自动组装。如果没有找到匹配的bean,将不会发生任何事情。
按名称,即根据属性名称执行自动装配。该项将检查Spring容器中与属性名完全一致的bean,并执行自动组装。
@ component(' report action ')@ scope(' request ')公共类报告操作扩展了abstractbaseaction @ component注释(以下解释来自官方文档)
@组件、@服务和@控制器。@Component是Spring管理的所有组件的通用形式;而@Repository、@Service和@Controller是@Component的细化,用于表示更具体的用例(例如,它们分别对应于持久层、服务层和表示层)。也就是说,您可以用@Component注释您的组件类。
但是,如果您用@Repository、@Service或@Controller对它们进行注释,那么您的类可能会被工具更好地处理或者与方面相关联。
例如,这些规范注释可以成为理想的突破目标。当然,@Repository、@Service和@Controller在Spring Framework的后续版本中可能会承载更多的语义。因此,如果您正在考虑在服务层使用@Component还是@Service,那么@Service显然是更好的选择。同样,如前所述,@Repository在持久层中执行异常转换时已经可以用作标记。
@Scope()指定bean的范围
@Scope('原型')注释
当Spring容器输出原型类型对象时,它每次都会向请求者重新生成一个新对象。虽然这类对象的实例化和属性设置都是由Spring容器完成的,但只要准备完成,对象实例返回给请求者,容器就不再持有当前对象的引用,请求者需要管理当前对象本身的后续生命周期,包括对象的销毁。最典型的情况是将Spring容器与Struts2集成时,将动作范围改为原型。
@Scope('singleton ')注释
该值指示容器中只有一个实例,并且对bean的所有引用都是单个实例。这是一个典型的单一案例模型。
@Scope('请求')注释
bean id=' RequestProcessor ' class='.RequestPrecessor '作用域='request' /
Spring容器,也就是XmlWebApplicationContext,被用作每个全新的请求处理器。当请求结束时,对象的生命周期结束。当同时发送100个Http请求时,容器将为每个请求创建不同的RequestPrecessor实例,它们不会相互干扰。简单来说,请求可以看作是原型的特例,请求的应用场景比较具体,其他的基本相同。
@Scope('session ')注释
对于Web应用程序来说,最需要放入会话的是用户的登录信息。对于放入会话的信息,范围类型可以更改为会话。Spring容器将为每个独立的会话创建自己全新的UserPreference实例,它将比请求类型的bean持续更长的时间。其他方面基本相同,类似于javaweb中的会话。
最后,我们来谈谈为什么@Respository只能在Dao层标记,因为Spring提供的注释不仅将类标识为Bean,还可以标识
感谢您的阅读,希望对大家有所帮助,感谢您对本网站的支持!