chi*_*fet 9 spring spring-boot
我对文档不太清楚何时使用其中一种或另一种。从我尝试过的事情来看,他们似乎都有相同的行为。到底有什么区别?
基本上,@Import注释导入一个或多个@Configuration类,并且这些类可以声明一个或多个@Bean方法。
\n\n而@ImportAutoConfiguration注释导入并应用指定的自动配置类。
\n\n\n\n\n对@Import和@ImportAutoConfiguration进行更详细的比较
\n
spring-context模块的注释一个简单的例子,假设你有这些配置类,
\n\n用户配置
\n\n@Configuration\npublic class UserConfig {\n\n @Bean(name="user")\n public User userConfigure(){ \n return new User(); \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n调度程序配置
\n\n@Configuration\npublic class SchedulerConfig {\n\n @Bean(name="scheduler")\n public Schedule cheduleConfigure(){ \n return new Schedule(); \n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n应用程序配置
\n\n使用@Import注释导入这些配置类
\n\n@Configuration\n@Import({ UserConfig.class, SchedulerConfig.class })\npublic class AppConfig {\n\n}\nRun Code Online (Sandbox Code Playgroud)spring-boot模块 - 您只能在以下位置使用此注释Spring-Boot applications一个简单的例子,
\n\n与@Import部分一样,我们也需要在这里创建用@Configuration注释的类。与上面的 @Import 示例不同,您可以在类org.springframework.boot.autoconfigure.condition上使用不同的 s(ConditionalOnProperty、ConditionalOnResource、ConditionalOnBean、ConditionalOnMissingBean 等)auto-configuration。
@Configuration\n@ConditionalOnProperty(prefix = "my.data.base.config", name = "enable", havingValue = "true")\npublic class DataAutoConfiguration {\n\n @Bean\n @ConfigurationProperties(prefix = "my.data.base")\n public DataService dataService() {\n return new DataService();\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n使用@ImportAutoConfiguration注释导入自动配置
\n\n@Configuration\n@ImportAutoConfiguration(DataAutoConfiguration.class)\npublic class MyDatabaseAutoconfiguration {\n //...\n}\nRun Code Online (Sandbox Code Playgroud)\n\n现在您需要将其注册到resources/META-INF/spring.factories文件中,
org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.your.package.autoconfiguration.MyDatabaseAutoconfiguration\nRun Code Online (Sandbox Code Playgroud)\n\n要启用自动配置,我们可以使用@SpringBootApplication或@EnableAutoConfiguration 注解之一
\n\n@SpringBootApplication\npublic class AutoconfigurationApplication {\n public static void main(String[] args) {\n SpringApplication.run(AutoconfigurationApplication.class, args);\n }\n}\nRun Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
6018 次 |
| 最近记录: |