1、提示
建议不要定义类时不要使用缺省包(不定义package名),可能在使用 @ComponentScan , @EntityScan , or @SpringBootApplication发生问题。
2、定位主类
1)建议放在其他应用程序之上的root包下,该类通常使用 @SpringBootApplication注解,同时也隐含定义个基础的搜索包。
2) @EnableAutoConfiguration and @ComponentScan可以代替 @SpringBootApplication 去定位主类。
3、配置类
1)建议主要的资源在一个单独的 @Configuration类,通常这个类定义main方法,作为一个好的候选配置类
2) @Import可以导入一些附加的配置类
3) @ComponentScan可以自动获取spring组件,包括 @Configuration classes
4)如果使用xml配置,仍然建议使用 @Configuration类 开始,然后使用 @ImportResource 加载xml配置文件
4、自动配置
1)@EnableAutoConfiguration or @SpringBootApplication建议仅仅在主类追加其中一个即可。
5、禁用自动配置类
1)@EnableAutoConfiguration( exclude={DataSourceAutoConfiguration.class})
2)如果类不在classpath中,可以只用注解的 excludeName 属性,并全限定名代替
3)也可以使用 spring.autoconfigure.exclude 属性去排除
6、spring beans和依赖注入
1)通常使用 @ComponentScan 发现bean并使用 @Autowired 去做构造注入
2) @Component , @Service , @Repository , @Controller 将被自动注册为springbean
3)如果bean只有一个构造方法可以忽略 @Autowired 注解。
7、 @SpringBootApplication 相当于使用 @Configuration , @EnableAutoConfiguration , and @ComponentScan