@Configuration

简介: @Configuration 注解用于标记配置类,相当于 XML 配置文件,被 Spring IOC 容器识别并加载。通过 @Bean 注解定义 Bean,替代传统的 XML 方式。结合 AnnotationConfigApplicationContext 可启动容器并管理 Bean 实例。

被 @Configuration 标注的类,会被 Spring 的IOC容器认定为配置类。
一个被 @Configuration 标注的类,相当于一个 applicationContext.xml 的配置文件。

例如:声明一个类,并标注 @Configuration 注解:

Java

运行代码复制代码

1

2

3

4

5

6

7

@Configuration

public class ConfigurationDemo {

   @Bean

public Date currentDate() {

return new Date();

}

}


上述注册Bean的方式类比于xml:

XML

复制代码

1

<bean id="currentDate" class="java.util.Date"/>


之后使用注解启动方式,初始化一个IOC容器,并打印IOC容器中的所有bean的name:

Java

运行代码复制代码

1

2

3

4

5

6

7

public class MainApp {

public static void main(String[] args) throws Exception {

AnnotationConfigApplicationContext ctx = new AnnotationConfigApplicationContext(ConfigurationDemo.class);

String[] beanDefinitionNames = ctx.getBeanDefinitionNames();

Stream.of(beanDefinitionNames).forEach(System.out::println);

}

}


输出结果:

Java

运行代码复制代码

1

2

3

4

5

6

7

org.springframework.context.annotation.internalConfigurationAnnotationProcessor

org.springframework.context.annotation.internalAutowiredAnnotationProcessor

org.springframework.context.annotation.internalCommonAnnotationProcessor

org.springframework.context.event.internalEventListenerProcessor

org.springframework.context.event.internalEventListenerFactory

configurationDemo

currentDate


相关文章
SpringBoot使用ProxyServlet实现HTTP反向代理
SpringBoot使用ProxyServlet实现HTTP反向代理
2236 0
|
存储 JSON 数据库
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
【C++ 软件设计思路】跨平台应用开发:如何选择合适的格式保存信息
513 0
|
存储 Java 数据库
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
Base64解码遇到java.lang.IllegalArgumentException: Illegal base64 character d
|
XML Java 数据格式
@Configuration的作用
@Configuration的作用
568 1
|
应用服务中间件 API nginx
解决跨域问题 Response to preflight request doesn't pass access control check
解决跨域问题 Response to preflight request doesn't pass access control check
13388 1
|
Java 测试技术 Spring
|
存储
DROP TABLE 语句
【7月更文挑战第20天】DROP TABLE 语句。
939 2
|
Kubernetes Go 开发者
GO编程语言:简洁、高效、强大的开源编程语言
GO语言,又称Golang,是由Google公司开发的一种静态类型、编译型的编程语言。其设计理念是提供一种直观、简洁、可靠的解决方案
494 2
|
前端开发 C# 开发工具
在winform中使用blazor hybrid构建页面
在winform中使用blazor hybrid构建页面
566 0

热门文章

最新文章