spring中使用注解时配置文件的写法:
<"1.0" encoding="UTF-8""font-size:18px;"><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.0.xsd"> <aop:aspectj-autoproxy/> <context:annotation-config/> <context:component-scan base-package="com.test" /> </beans>
<context:component-scan />配置项就配置了对指定的包进行扫描,以实现依赖注入。
下面介绍下一些常见注解的使用:
@Autowired private IReportService reportService ;
Spring2.5引入了@Autowired注解,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。另外,通过@Autowired可以消除get,set方法。@Autowired是根据类型进行自动转配的。
这里要注意@Resource也可以实现自动装配,但是@Resource默认是按照名称进行自动装配。
这里简单介绍下什么是按类型进行装配,什么是按名称进行装配?
所谓按类型,就是当Spring容器中存在一个与指定属性类型相同的bean,那么将该属性进行自动装配;如果存在多个该类型的bean,那么跑出异常,并指出不能使用按类型进行自动装配;如果没有找到匹配的bean,则什么事都不发生。
所谓按名称,即根据属性名进行自动装配,此项会检查Spring容器中与该属性名完全一致的的bean,进行自动装配。
@Component("reportAction") @Scope("request") public class ReportAction extends AbstractBaseAction
@Component注解(下面的解释来自官方文档)
@Component、@Service和@Controller。@Component是所有受Spring管理组件的通用形式;
而@Repository、@Service和@Controller则是@Component的细化, 用来表示更具体的用例(例如,分别对应了持久化层、服务层和表现层)。也就是说, 你能用@Component来注解你的组件类,
但如果用@Repository、@Service 或@Controller来注解它们,你的类也许能更好地被工具处理,或与切面进行关联。
例如,这些典型化注解可以成为理想的切入点目标。当然,在Spring Framework以后的版本中,@Repository、@Service和@Controller也许还能携带更多语义。如此一来,如果你正在考虑服务层中是该用@Component还是@Service,
那@Service显然是更好的选择。同样的,就像前面说的那样,@Repository已经能在持久化层中进行异常转换时被作为标记使用了。
@Scope()指定的是bean的作用域
@Scope("prototype")注解
Spring容器在进行输出prototype类型的对象时,会每次重新生成一个新的对象给请求方,虽然这种类型的对象的实例化以及属性设置都是由Spring容器来完成的,但是只要准备完毕,并且对象实例返回给请求方的之后,容器就不会再持有当前对象的引用,请求方需要自己来当前对象后继生命周期的管理,包括该对象的销毁。最典型的案例就是Spring容器和Struts2进行整合时,要将action的scope的改成prototype。
@Scope("singleton")注解
此取值表示容器中只存在一个实例,所有引用该bean都是单一实例。这个就是典型的单例模型。
@Scope("request")注解
<bean id="requestPrecessor" class=".....RequestPrecessor" scope ="request" />
Spring容器,即XmlWebApplicationContext回为每一个全新的RequestPrecessor,当请求结束后,该对象的生命周期即结束。当有100个Http请求同时发出时,容器会分别对每个请求创建不同的RequestPrecessor实例,它们之间不相互干扰,简单来讲,request可以看做是prototype的特例,request的应用场景更具体点,其他基本没啥区别。
@Scope("session")注解
对于Web应用来说,放在session中最多的就是用户的登录信息,对于放在session中的信息,可以将其scope的类型改为session,Spring容器会为每个独立的session创建属于自己的全新的UserPreference实例,比request类型的bean存活更长的时间,,其他方面基本没啥区别,类似于javaweb中的session。
最后,说一下为什么@Respository只能标注在Dao层,这是因为Spring提供的这个注解不仅将类识别为Bean,同时它能将所
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新日志
- 齐豫.2003-THE.UNHEARD.OF.CHYI.3CD【苏活音乐】【WAV+CUE】
- 黄乙玲1986-讲什么山盟海誓[日本东芝版][WAV+CUE]
- 曾庆瑜1991-柔情陷阱[台湾派森东芝版][WAV+CUE]
- 陈建江《享受男声》DTS-ES6.1【WAV】
- 群星《闪光的夏天 第5期》[FLAC/分轨][392.38MB]
- 徐小凤《三洋母带》1:1母盘直刻[WAV+CUE][981M]
- 王菲1995《菲靡靡之音》[香港首版][WAV+CUE][1G]
- 《双城之战》主题小游戏现已上线 扮演金克丝探索秘密基地
- 《霍格沃茨之遗》PS5Pro画面对比:光追性能显著提升
- 《怪猎荒野》PS5Pro主机版对比:B测性能都不稳定
- 黄宝欣.1992-黄宝欣金装精选2CD【HOMERUN】【WAV+CUE】
- 群星.1996-宝丽金流行爆弹精丫宝丽金】【WAV+CUE】
- 杜德伟.2005-独领风骚新歌精选辑3CD【滚石】【WAV+CUE】
- 安与骑兵《心无疆界》[低速原抓WAV+CUE]
- 柏菲唱片-群星〈胭花四乐〉2CD[原抓WAV+CUE]