springboot的启动原理之@SpringBootConfiguration和@ComponentScan注解

@SpringBootApplication
@EnableTransactionManagement
@EnableScheduling
@ComponentScan(basePackages = { "cn..." })
@MapperScan("cn...mapper")
public class SpringApplication {
	public static void main(String[] args) {
		SpringApplication.run(EventSpringApplication.class, args);
	}
}

点击@SpringBootApplication看源码发现

springboot的启动原理之@SpringBootConfiguration和@ComponentScan注解_第1张图片

最重要的是以下三个注解

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan

@SpringBootConfiguration注解和@Configuration类似

1.注册bean定义层面 基于XML的配置形式是这样:


2.基于JavaConfig的配置形式

@Configuration
public class Config {
@Bean
    public UserService userService() {
       return new UserServiceImpl();
    }
}

任何一个标注了@Bean的方法,其返回值将作为一个bean定义注册到Spring的IOC容器,方法名将默认成该bean定义的id。

如果有依赖关系的话,直接调用对应的JavaConfig类中依赖bean的创建方法就可以了。

3.@ComponentScan 自动扫描符合条件的组件,例如@Component和@Repository

4.@EnableAutoConfiguration有很大的作用,是启用Spring Boot的自动配置机制

5.@EnableTransactionManagement 是开启事务支持,等同于xml配置方式的

  在访问数据库的Service方法上添加注解 @Transactional 即可

springboot更新文档

http://blog.geekidentity.com/spring/spring_boot_translation/

你可能感兴趣的:(面试)