Spring框架核心注解详解
需积分: 9 142 浏览量
更新于2024-09-05
收藏 18KB DOCX 举报
"这篇文档是关于Spring框架中常用的注解的收藏大全,涵盖了声明bean、注入bean、java配置类、切面(AOP)以及@Bean的属性支持等多个方面。"
在Spring框架中,注解是一种简化配置的方式,使得代码更加简洁易读。以下是这些关键注解的详细解释:
1. 声明bean的注解:
- `@Component` 是最基础的注解,用于标记任何类型的组件,没有特定的角色。
- `@Service` 通常用于业务逻辑层(service层),表示一个服务组件。
- `@Repository` 用于数据访问层(DAO层),标记数据访问对象。
- `@Controller` 在展现层使用,声明控制器,处理HTTP请求。
2. 注入bean的注解:
- `@Autowired` Spring提供的自动装配注解,可以根据类型或名称自动匹配并注入bean。
- `@Inject` 来自JSR-330,功能与`@Autowired`类似,但更简单,只基于类型进行注入。
- `@Resource` JSR-250提供,主要用于JSR-250规范中的依赖注入,可以按名称进行注入。
3. Java配置类相关注解:
- `@Configuration` 标记类为配置类,等同于XML配置文件,可以声明bean。
- `@Bean` 用在方法上,表示该方法返回的对象是一个bean,替代XML中的bean定义。
- `@Configuration` 还可以与@Component一起使用,表明该类既是配置类,也是一个bean。
- `@ComponentScan` 扫描指定包下所有`@Component`、`@Service`、`@Repository`、`@Controller`注解的类。
- `@WishlyConfiguration` 是`@Configuration`和`@ComponentScan`的组合,简化配置。
4. 切面(AOP)相关注解:
- `@Aspect` 标记一个类作为切面,包含切点和通知。
- `@After`、`@Before`、`@Around` 定义通知,分别表示后置、前置、环绕通知,可以传入切点表达式作为参数。
- `@PointCut` 声明切点,定义拦截规则。
- `@EnableAspectJAutoProxy` 在配置类上启用AspectJ的自动代理支持。
5. `@Bean`的属性支持:
- `@Scope` 用于设置bean的作用域,如:
- `Singleton`:单例模式,Spring容器内只有一个bean实例。
- `Prototype`:原型模式,每次请求都会创建新的bean实例。
- `Request`:在Web应用中,每个HTTP请求都有一个新的bean实例。
- `Session`:在Web应用中,每个HTTP session有一个bean实例。
- `GlobalSession`:全局session,适用于portlet环境。
了解和熟练使用这些注解,能够极大地提高Spring应用的开发效率和代码的可读性,减少XML配置文件的依赖,实现更加灵活和模块化的Java配置。在实际项目中,应根据具体需求选择合适的注解来组织和管理bean及其依赖关系。
2021-06-01 上传
2020-04-05 上传
2022-06-19 上传
2022-06-26 上传
2013-04-15 上传
2022-06-19 上传
2012-11-21 上传
2021-07-09 上传
马小光
- 粉丝: 0
- 资源: 25
最新资源
- main.c_AESc源码_AES行移位_源码
- hanane-coll.github.io
- dedup-test-01:重复数据删除编码测试
- 基于HTML实现的黑色大气app应用设计开发者网站模板4948(css+html+js+图样).zip
- 缺陷检测和研究-matlab
- ml-integration-samples:此存储库包含用于将Google Cloud AI和ML集成到Google Workspace中的代码示例和实用程序的集合
- 【创新发文无忧】Matlab实现哈里斯鹰优化算法HHO-DELM的故障诊断算法研究.rar
- image-resizer:用于Laravel的简单图像缩放器
- 行业文档-设计装置-带穿针的订书器.zip
- ds18b20数码管显示2_lose953_DS18B20数码管_51DS18B20_STC89C52_源码
- Matchstick-14-28-March
- 网页设计期末大作业+html+css
- 基于java的-655-学术成果管理系统--LW-源码.zip
- spree_redsys
- lucene-queries-7.3.1.jar中文-英文对照文档.zip
- ip-sniff:一个演示如何使用现代Javascript API使用指纹以及一些自动查找和内容来跟踪您的演示