使用@SpringbootApplication注解 能够解决根类或者配置类(我本身的说法,就是main所在类)头上注解过多的问题,一个@SpringbootApplication至关于@Configuration,@EnableAutoConfiguration和 @ComponentScan 并具备他们的默认属性值。java
package com.example.myproject; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }
@Configuration可理解为用spring的时候xml里面的<beans>标签web
@Bean可理解为用spring的时候xml里面的<bean>标签spring
Spring Boot不是spring的增强版,因此@Configuration和@Bean一样能够用在普通的spring项目中,而不是Spring Boot特有的,只是在spring用的时候,注意加上扫包配置数据库
<context:component-scan base-package="com.xxx.xxx" />,普通的spring项目好多注解都须要扫包,才有用,有时候本身注解用的挺6,但不起效果,就要注意这点。springboot
Spring Boot则不须要,主要你保证你的启动Spring Boot main入口,在这些类的上层包就行。函数
@ComponentScan 若是不设置basePackage的话 默认会扫描包的全部类,因此最好仍是写上basePackage ,减小加载时间。默认扫描**/*.class路径 好比这个注解在com.wuhulala 下面 ,那么会扫描这个包下的全部类还有子包的全部类,好比com.wuhulala.service包的应用spring-boot
@Configuration 表示这个类是一个spring 配置类,通常这里面会定义Bean,会把这个类中bean加载到spring容器中单元测试
这个注释告诉SpringBoot“猜”你将如何想配置Spring,基于你已经添加jar依赖项。若是spring-boot-starter-web已经添加Tomcat和Spring MVC,这个注释自动将假设您正在开发一个web应用程序并添加相应的spring设置。测试
自动配置被设计用来和“Starters”一块儿更好的工做,但这两个概念并不直接相关。您能够自由挑选starter依赖项之外的jar包,springboot仍将尽力自动配置您的应用程序。ui
经过上面的配置,Spring已经能够找到对应的Bean,接下来,就是将Bean注入到类中使用,减小get和set方法。减小new。
@Autowired:对类成员变量、方法及构造函数进行标注,完成自动装配的工做。 @Qualifier:指定注入Bean的名称。 @Autowired默认按类型装配(spring),默认状况下要求依赖对象必须存在。若是要容许null值,能够设置它的required属性为false。若是咱们想使用名称装配能够结合@Qualifier注解进行使用。
@Resource:做用等同于@Autowired。 @Resource(J2EE),默认安装名称进行装配,名称默认为属性名。当找不到与名称匹配的bean时才按照类型进行装配。可是须要注意的是,若是name属性一旦指定,就只会按照名称进行装配。 推荐使用:@Resource注解在字段上,这样就不用写setter方法了,而且这个注解是属于J2EE的,减小了与spring的耦合。这样代码看起就比较优雅。
进行单元测试的时候须要额外使用如下注解: