给出@Configuration + @Bean的案例,并通过ApplicationContext验证它。说明这两个注解的用途
时间: 2024-02-05 09:10:48 浏览: 21
@Configuration和@Bean是Spring框架中用于定义Bean的注解。
@Configuration注解用于标记一个类,声明该类是一个配置类,用于替代传统的XML配置文件。在@Configuration注解的类中,可以使用@Bean注解来定义Bean对象,Spring会自动扫描@Configuration注解的类,并将其中的@Bean注解生效,创建相应的Bean对象。
下面是一个@Configuration + @Bean的案例:
```java
@Configuration
public class AppConfig {
@Bean
public HelloService helloService() {
return new HelloServiceImpl();
}
@Bean
public WorldService worldService() {
return new WorldServiceImpl(helloService());
}
}
```
在上面的代码中,AppConfig类使用@Configuration注解标记,表示这是一个配置类。该类中定义了两个@Bean注解的方法,分别用于创建HelloService和WorldService的Bean对象。
为了验证这个配置类是否生效,我们可以通过ApplicationContext获取相应的Bean对象,如下所示:
```java
public static void main(String[] args) {
ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
HelloService helloService = context.getBean(HelloService.class);
WorldService worldService = context.getBean(WorldService.class);
System.out.println(helloService.sayHello());
System.out.println(worldService.sayHelloWorld());
}
```
运行上面的代码,可以看到输出结果为:
```
Hello, World!
Hello, World! - Hello from HelloServiceImpl
```
说明我们成功地从ApplicationContext中获取了HelloService和WorldService的Bean对象,并且这些Bean对象是通过AppConfig类中的@Bean注解方法创建的。
总的来说,@Configuration注解用于标记配置类,@Bean注解用于定义Bean对象,并且这两个注解可以替代传统的XML配置文件,使得Spring框架更加简单、灵活和易于维护。