📅  最后修改于: 2023-12-03 14:54:05.717000             🧑  作者: Mango
在 Spring 中,@Configuration
注解是用于定义配置类的,它会提供一个或多个 bean 的定义,这些 bean 的定义会被注册到 Spring 应用程序上下文中。与传统的 XML 配置方案相比,使用 @Configuration
注解可以更加灵活和简洁。
要创建一个配置类,只需要创建一个带有 @Configuration
注解的普通 Java 类即可。在这个类中,可以使用 @Bean
注解来定义 Bean。例如:
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserServiceImpl();
}
@Bean
public UserDao userDao() {
return new UserDaoImpl();
}
}
上面的示例中,我们创建了一个名为 AppConfig
的配置类,并定义了两个 Bean:userService
和 userDao
。
下面是一个更完整的示例代码,其中包含了多个配置类和多个 Bean:
@Configuration
public class AppConfig {
@Bean
public UserService userService() {
return new UserServiceImpl();
}
@Bean
public UserDao userDao() {
return new UserDaoImpl();
}
}
@Configuration
public class WebMvcConfig {
@Bean
public ViewResolver viewResolver() {
InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
viewResolver.setPrefix("/WEB-INF/views/");
viewResolver.setSuffix(".jsp");
return viewResolver;
}
@Bean
public HandlerMapping handlerMapping() {
return new BeanNameUrlHandlerMapping();
}
}
@Configuration
@EnableRedisRepositories
public class RedisConfig {
@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(connectionFactory);
return redisTemplate;
}
@Bean
public RedisConnectionFactory redisConnectionFactory() {
return new JedisConnectionFactory();
}
}
上面的代码定义了三个配置类:
AppConfig
:定义了两个 Bean,userService
和 userDao
。WebMvcConfig
:定义了两个 Bean,viewResolver
和 handlerMapping
。RedisConfig
:定义了两个 Bean,redisTemplate
和 redisConnectionFactory
。需要注意的几点是:
@Configuration
注解告诉 Spring 这个类是一个配置类。@Bean
注解告诉 Spring 这个方法返回的是一个 Bean,Spring 会将这个 Bean 注册到应用程序上下文中。@EnableRedisRepositories
注解告诉 Spring 启用 Redis 存储库功能。@Configuration
注解是用于定义配置类的,它会提供一个或多个 bean 的定义,这些 bean 的定义会被注册到 Spring 应用程序上下文中。与传统的 XML 配置方案相比,使用 @Configuration
注解可以更加灵活和简洁。