bean的加载方式三 用注解声明配置类
我们之前用组件扫描加上注解定义bean
实现了bean的加载
当我们又会发现这个配置文件过于繁琐
我们可以写一个类
不是配置文件而是配置类
我们接下来只需要把这句话的功能写到
配置类里面
这样书写就行
package com.bigdata1421.config;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.stereotype.Component;
@ComponentScan({"com.bigdata1421.bean","com.bigdata1421.config"})
public class SpringConfig3 {
}
启动类启动
package com.bigdata1421.bean.app;
import com.bigdata1421.config.SpringConfig3;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class App3 {
public static void main(String[] args) {
ApplicationContext ctx=new AnnotationConfigApplicationContext(SpringConfig3.class);
String[] arr = ctx.getBeanDefinitionNames();
for (String s : arr) {
System.out.println(s);
}
}
}
成功查看到了信息
@Configuration
@Configuration是 Spring Framework 中的一个注解,它用于指示该类是一个配置类,它的作用类似于传统的 XML 配置文件。具体来说,它的主要功能有以下几点:
-
定义配置类:使用
@Configuration
注解的类可以提供 bean 的定义和其他 Spring 配置的定义。 -
声明 Bean:在配置类中,可以使用
@Bean
注解声明 bean。这些 bean 将由 Spring 容器管理,并可以在应用程序中通过依赖注入来使用。 -
替代 XML 配置:
@Configuration
注解通常用来取代传统的 XML 配置文件,因为它提供了更加便捷和类型安全的配置方式。 -
组合注解:
@Configuration
注解经常与其他注解结合使用,例如@ComponentScan
和@Import
,以及 Spring Boot 中的@SpringBootApplication
。
@Component
@Component 是 Spring Framework 中最基本的注解之一,用于表示一个类是 Spring 管理的组件。具体来说,@Component
通常用于将 Java 类标识为 Spring Bean,这些 Bean 可以由 Spring 容器进行实例化、管理和组装。
-
作为 Spring Bean 的标识:
-
当一个类使用
@Component
注解标注时,Spring 将会在运行时自动扫描并将其注册为一个 Bean。 -
这意味着该类的实例可以由 Spring IoC 容器进行管理,包括依赖注入和生命周期管理等。
-
-
类的自动检测和注册:
-
通过组件扫描(component scanning),Spring 可以自动检测带有
@Component
注解的类,并将其实例化为 Bean。 -
在典型的 Spring 应用程序中,可以通过配置
@ComponentScan
注解来指定扫描的包路径,从而告诉 Spring 在哪里寻找和注册组件。
-
-
与其他注解的关系:
@Component
注解是一个通用的组件配置,它的派生注解有更具体的用途和语义,例如:
-
@Controller
:用于标识控制器类。 -
@Service
:用于标识服务层(service layer)类。 -
@Repository
:用于标识数据访问层(repository layer)类。
-
这些派生注解除了表明类的职责外,还会影响 Spring 在某些情况下的行为,例如异常处理和事务管理。
-
-
简化配置:
-
使用
@Component
及其派生注解可以大大简化 Spring 应用程序的配置文件,尤其是替代传统的 XML 配置文件方式。
-
区别
-
目的和作用:
-
@Component
:用于标识一个普通的 Spring Bean,主要用于组件扫描和自动装配。 -
@Configuration
:用于定义一个配置类,包含 Bean 定义和其他应用配置,通常作为配置文件的替代方案。
-
-
方式:
-
@Component
:类本身被标记为一个组件,由 Spring 自动扫描和注册为 Bean。 -
@Configuration
:类中的方法被标记为@Bean
,这些方法返回的对象被注册为 Spring Bean。
-
-
结构:
-
@Component
:直接应用于类,表示该类本身是一个组件。 -
@Configuration
:应用于类,表示该类包含一个或多个@Bean
方法,这些方法定义了要被 Spring 容器管理的 Bean。
-
小结
个人号推广
博客主页
多多!-CSDN博客
Web后端开发
https://blog.csdn.net/qq_30500575/category_12624592.html?spm=1001.2014.3001.5482
Web前端开发
https://blog.csdn.net/qq_30500575/category_12642989.html?spm=1001.2014.3001.5482
数据库开发
https://blog.csdn.net/qq_30500575/category_12651993.html?spm=1001.2014.3001.5482
项目实战
https://blog.csdn.net/qq_30500575/category_12699801.html?spm=1001.2014.3001.5482
算法与数据结构
https://blog.csdn.net/qq_30500575/category_12630954.html?spm=1001.2014.3001.5482
计算机基础
https://blog.csdn.net/qq_30500575/category_12701605.html?spm=1001.2014.3001.5482
回忆录
https://blog.csdn.net/qq_30500575/category_12620276.html?spm=1001.2014.3001.5482