@Bean
类似于XML中的<bean></bean>,意为产生一个bean,交由spring管理
@Component
标识组件,使其自动被Spring扫描,并注册为Bean
@Service
@Component的特殊化,修饰Service层的的组件,用于封装业务逻辑
@SpringBootApplication
这个注解是Spring Boot最核心的注解,用在 Spring Boot的主类上(application),标识这是一个 Spring Boot 应用,用来开启 Spring Boot 的各项能力。实际上这个注解是@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解的组合。由于这些注解一般都是一起使用,所以Spring Boot提供了一个统一的注解@SpringBootApplication。
@EnableAutoConfiguration
- 自动配置机制:
@EnableAutoConfiguration
启用了 Spring Boot 的自动配置功能,根据应用的类路径和环境自动加载相应的配置类,简化了应用配置。 - 减少手动配置:通过自动配置,开发者无需编写大量的配置代码,Spring Boot 会根据类路径和依赖自动配置常见的框架和组件。
- 与
@SpringBootApplication
配合使用:通常情况下,@EnableAutoConfiguration
是@SpringBootApplication
的一部分,因此开发者不需要单独使用它。 - 禁用自动配置:你可以通过
@EnableAutoConfiguration(exclude = ...)
或在配置文件中禁用某些自动配置。
@Configuration
- 定义配置类:
@Configuration
用来定义一个配置类,通常用于替代传统的 XML 配置文件,包含@Bean
注解的方法。 - 创建和管理 Bean:配置类中的
@Bean
注解方法用于定义 Bean,Spring 会自动管理这些 Bean 的生命周期和依赖关系。 - 与
@Component
的关系:@Configuration
继承自@Component
,意味着 Spring 会自动扫描和注册被@Configuration
注解的类,但它具有额外的代理机制来确保 Bean 的单例性。 - 环境配置支持:可以通过
@Profile
等注解来为不同环境提供不同的配置。
通过 @Configuration
,Spring Boot 和 Spring 框架提供了一种灵活和类型安全的配置方式,避免了传统 XML 配置带来的复杂性,并且与注解驱动的编程模式高度集成。
@ComponentScan
@ComponentScan
是 Spring Framework 中一个重要的注解,用于启用 Spring 容器的 组件扫描 功能。它的作用是告诉 Spring 框架在哪些包中扫描并发现 @Component
(及其衍生注解,如 @Service
、@Repository
、@Controller
等)标记的类,并将这些类自动注册为 Spring 的 Bean。通常,@ComponentScan
会与 @Configuration
或 @SpringBootApplication
一起使用,来启用自动扫描和注入。
@Repository
用于标注数据访问组件,即DAO组件。
使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。
@RestController
@Controller和@ResponseBody的集合,使得开发 RESTful API 更加简便。用于定义 RESTful Web 服务的控制器,自动将返回的对象转为 JSON 或 XML 格式的响应体。适用于构建 API 接口,特别是为移动端、前后端分离的 Web 应用提供后端接口。
@ResponseBody
表示该方法的返回结果直接写入HTTP response body中
一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response body中。比如异步获取json数据,加上@responsebody后,会直接返回json数据。
@Resource(name="name",type="type")
@Resource
是一种依赖注入方式,支持根据 Bean 名称或类型注入 Bean。- 主要用于 按名称 进行依赖注入,适用于字段名和 Bean 名称一致的情况。
- 如果不指定名称,
@Resource
会根据字段名或方法名来自动匹配 Bean。 @Resource
在多 Bean 配置的情况下,可以通过name
属性明确指定注入哪个 Bean。
尽管 @Resource
在功能上和 @Autowired
有些重叠,它通常用于根据 Bean 名称进行注入,而 @Autowired
更常用于按类型注入。
@Autowired
byType方式。把配置好的Bean拿来用,完成属性、方法的组装,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。
当加上(required=false)时,就算找不到bean也不报错。
@Scheduled
用于定时执行任务,它允许你通过简单的配置来定义任务的执行时间和频率,通常用于周期性执行某些操作,如定期清理数据、发送报告等。
@ConfigurationProperties
@ConfigurationProperties
是 Spring Framework 提供的一个注解,主要用于将配置文件(如 application.properties
或 application.yml
)中的属性自动绑定到 Java 类的字段上。通过这个注解,可以方便地读取和管理配置文件中的复杂配置,尤其是在需要映射到一个 POJO 类时。
@RequestMapping
RequestMapping是一个用来处理请求地址映射的注解;提供路由信息,负责URL到Controller中的具体函数的映射,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。