Spring Boot @Component 教程显示了如何在 Spring 应用中使用@Component
注解。 在示例中,我们创建一个 Spring Boot 控制台应用。
Spring 是流行的 Java 应用框架,而 Spring Boot 是 Spring 的演进,可以帮助轻松地创建独立的,生产级的基于 Spring 的应用。
@Component
@Component
是最通用的 Spring 注解。 在类路径扫描期间找到装饰有@Component
的 Java 类,并在上下文中注册为 Spring Bean。 @Service
,@Repository
和@Controller
是@Component
的专业,用于更具体的情况。
@ComponentScan
确保找到用@Component
装饰的类并将其注册为 Spring Bean。 @ComponentScan
自动包含在@SpringBootApplication
中。
@Bean
具有与@Component
类似的目的。 不会自动检测到。 用@Bean
装饰的方法会在配置阶段生成一个由 Spring 容器管理的 bean。
Spring Boot @Component
示例
以下应用演示了@Component
的用法。 它使用注解创建一个随机生成名称的 bean。
这是项目结构。
pom.xml
这是 Maven pom.xml
文件。 spring-boot-starter-parent
是父 POM,它为使用 Maven 构建的应用提供依赖关系和插件管理。 spring-boot-starter
是一个核心启动器,包括自动配置支持,日志记录和 YAML。 spring-boot-maven-plugin
将 Spring 应用打包到可执行的 JAR 或 WAR 归档文件中。
resources/application.properties
application.properties
是 Spring Boot 中的主要配置文件。 我们关闭 Spring 横幅,通过仅选择错误消息来减少 Spring 框架的日志记录数量,并设置控制台日志记录模式
com/zetcode/service/RandomNameGenerator.java
RandomNameGenerator
是装饰有@Component
的 Java 类。 在组件扫描过程中将检测到它,并将其注册为 Spring Bean。
com/zetcode/MyRunner.java
通过实现CommandLineRunner
,将在应用启动后执行MyRunner
类的run()
方法。
MyRunner
也装饰有@Component
,因此也会自动检测并注册。
使用@Autowired
注解,我们将RandomNameGenerator
bean 注入到randGenerator
字段中。
在run()
方法中,我们记录包含随机名称的消息。
com/zetcode/Application.java
Application
是设置 Spring Boot 应用的入口。 @SpringBootApplication
注解启用自动配置和组件扫描。 它是@Configuration
,@EnableAutoConfiguration
和@ComponentScan
注解的便捷注解。
应用运行后,我们可以在控制台中看到日志消息。
在本教程中,我们展示了如何在 Spring 应用中使用@Component
注解。