Spring 的常用注释
来源:互联网 发布:淘宝怎么举报假冒商品 编辑:程序博客网 时间:2024/05/21 22:52
为了减少开发中配置的工作,增强程序的内聚性,提高开发的效率,Spring 支持使用 Annotation 来代替 XML 配置文件。
1、搜索 Bean 类
Spring 通过使用一些特殊的 Annotation 来标注 Bean 类,然后通过简单的配置驱动 Spring 自动搜索某些路径下的 Java 类,并将这些 Java 类注册成 Bean 实例。
- Spring 提供的几个 Annotation 来标注 Spring Bean:
- @Component:标注普通的 Spring Bean 类。
@Controller:标注控制器组件类。
@Service:标注业务逻辑组件类。
@Repository:标注 DAO 组件类。
Spring 配置文件中指定自动搜索路径
<!-- 自动扫描指定的包及其子包下的所有 Bean 类 --><context:component-scan base-package="com.sunsharing.springDemo" > <!-- 配置哪些的 Bean 不会被 Spring 容器管理 --> <context:exclude-filter type="regex" expression=".*bb"/></context:component-scan>
在基于 XML 配置方式下,每个 Bean 实例的名称都来由其 id 来指定,在基于 Annotation 的方式下, Spring 的 Bean 实例名称默认是 Bean 类的首字母小写,其他不变,也可使用 @Component 标注指定 Bean 实例的名称:
/** * Created by Hinbo on 2016/9/8. * 测试 Spring 的注解 */@Component("aaa") //默认为 american,该处指定为 aaapublic class American implements Person { private Axe axe; public American(){ System.out.println("Spring 实例化。。。。。。"); } public void userAxe() { System.out.println("American ......"); }}
<context:exclude-filter type="" expression=""/>
: 指定满足该规则的不会被 Spring 容器所管理,type 指定过滤器类型,expression 指定过滤器的表达式。
<context:include-filter type="" expression="" />
: 指定满足该规则的会被 Spring 容器管理。
2、指定 Bean 的作用域
Spring 可以通过 @Scope 注解来指定 Bean 实例的作用域,没有指定默认为 singleton 。
3、使用 @Resource 配置依赖
Spring 通过使用 @Resource 来为目标 Bean 指定协作者的 Bean ,该注解有一个 name 属性,值为被注入的 Bean 实例的 id 。
@Resource(name = "steelAxe")public void setAxe(Axe axe) { this.axe = axe;}
上述代码将容器中的 steelAxe 的 Bean 实例注入到 axe 中,达到与
4、使用 @PostConstruct 和 @PreDestroy 定制生命周期行为
@PostConstructpublic void init(){ System.out.println("American init ......");}@PreDestroypublic void close(){ System.out.println("American close ......");}
使用 @PostConstruct 修饰 init() 方法,让 Spring 在该 Bean 的依赖关系注入完成之后回调方法,使用 @PreDestroy 修饰 close() 方法,让 Spring 在销毁 Bean 之前回调该方法,这与
5、@DependsOn 注解和 @Lazy 注解
@DependsOn: 可以修饰 Bean 类或方法,用于强制初始化其他的 Bean。
@Lazy: 修饰 Spring Bean 类用于指定该 Bean 的初始化行为,可指定 boolean 型的 value 属性,决定是否要预初始化该 Bean 。
6、@Autowired 自动装配
@Autowired 可以对类成员变量、方法及构造甘薯进行标注,完成自动装配的工作,消除get, set 方法,实现精简程序的目的。
@Autowiredprivate Axe steelAxe;
使用 @Autowired 进行自动装配,Spring 会自动搜索容器中与该类型相匹配的 Bean 实例,并将其设置为该变量的值。
- Spring 的常用注释
- spring的常用注释
- spring常用注释
- Spring常用注释解析
- 注解和注释以及Spring和SpringMVC常用的注解
- 常用的注释模板
- 采用注释的spring
- Spring的四大注释
- Spring的@RequestHeader注释
- spring boot 常用注释及用法
- Doxygen的常用注释标记
- iOS常用的注释方法
- iOS常用的注释方法
- iOS常用的注释方法
- 关于常用广播的注释
- 常用的Java注释标签
- Python中常用的注释
- Spring框架的注释问题
- 第二周项目3-体验复杂度(1)两种排序算法的运行时间
- [绍棠] iOS 10 开发适配系列 之 权限Crash问题
- Java程序设计教程笔记
- Oracle迁移PostgreSQL经验总结
- 第三方登陆代码实现
- Spring 的常用注释
- 初试android,写了个2个服务端springmvc基于htpp协议的json互传和传统soap协议的webservice
- 在android中,编译的项目使用到第三方jar的导入方法 终极版!
- java版文件重命名
- 383C - Propagating tree 线段树加时间戳
- HDU:不可模数
- Java 汉字转拼音工具类
- javaWeb开发
- VB6多线程探秘