Spring配置类@Configuration详解与@Bean使用
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
"这篇文档详细介绍了在Spring框架中如何使用@Configuration进行配置,以及与@Bean、@Scope和@ComponentScan注解的结合使用。" 在Spring框架中,`@Configuration`注解是一个重要的概念,它用于定义配置类,这些类可以替代传统的XML配置文件,使Java配置成为可能。`@Configuration`类的引入使得配置更加灵活且类型安全,同时增加了代码的可读性和可测试性。 当`@Configuration`注解被添加到一个类上时,这个类就声明为一个配置源,Spring容器会将其视为一个包含bean定义的XML `<beans>` 元素。例如: ```java @Configuration public class MyConfiguration { public MyConfiguration() { System.out.println("容器初始化!!!!!!!!!!!!"); } } ``` 这行代码等价于以下XML配置: ```xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="myConfiguration" class="springclouddemo.springconfigtion.configtion.MyConfiguration"></bean> </beans> ``` 在配置类中,我们可以使用`@Bean`注解来声明一个bean。`@Bean`注解标注在方法上方,表示该方法的返回值将被注册为Spring容器中的一个bean。如果未指定bean的名称,那么bean的名称默认会取方法名。例如: ```java @Bean public MyService myService() { return new MyServiceImpl(); } ``` 默认情况下,`@Bean`注解创建的bean具有单例(singleton)作用域,这意味着每次从容器中获取该bean时,都会得到同一个实例。如果希望创建一个原型(prototype)作用域的bean,可以通过`@Scope("prototype")`来指定: ```java @Bean @Scope("prototype") public MyService myService() { return new MyServiceImpl(); } ``` 除了手动使用`@Bean`注解创建bean之外,我们还可以使用@Component、@Controller、@Service、@Repository等注解来标记组件类,然后通过`@ComponentScan`注解进行自动扫描,这样可以简化配置。例如: ```java @ComponentScan(basePackages = {"com.example.myapp"}) @Configuration public class AppConfig { // ... } ``` 在这个例子中,`@ComponentScan`会扫描指定的包及其子包,查找所有标记了@Component、@Controller、@Service或@Repository的类,并将它们自动注册到Spring容器中。 `@Configuration`类配合`@Bean`、`@Scope`和`@ComponentScan`等注解,为Spring应用提供了更简洁、直观的Java配置方式,极大地提高了开发效率和代码质量。通过这种方式,开发者可以更方便地管理和组织应用程序的组件和依赖关系。
![](https://csdnimg.cn/release/download_crawler_static/85694787/bg3.jpg)
剩余10页未读,继续阅读
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/ac8b9680820940e7ac9d0c7be554f725_weixin_44609920.jpg!1)
- 粉丝: 243
- 资源: 1940
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
最新资源
- Hadoop生态系统与MapReduce详解
- MDS系列三相整流桥模块技术规格与特性
- MFC编程:指针与句柄获取全面解析
- LM06:多模4G高速数据模块,支持GSM至TD-LTE
- 使用Gradle与Nexus构建私有仓库
- JAVA编程规范指南:命名规则与文件样式
- EMC VNX5500 存储系统日常维护指南
- 大数据驱动的互联网用户体验深度管理策略
- 改进型Booth算法:32位浮点阵列乘法器的高速设计与算法比较
- H3CNE网络认证重点知识整理
- Linux环境下MongoDB的详细安装教程
- 压缩文法的等价变换与多余规则删除
- BRMS入门指南:JBOSS安装与基础操作详解
- Win7环境下Android开发环境配置全攻略
- SHT10 C语言程序与LCD1602显示实例及精度校准
- 反垃圾邮件技术:现状与前景
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)