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