为什么SpringBoot会打成jar包的方式,就是打包jar包 没有webApp目录,因为SpringBoot注解把项目打成jar包部署到内嵌的tomcat中,为什么会有tomcat呢? 因为spring-boot-starter-web包里嵌入了一个tomcat,SpringBoot默认内置了一个tomcat 不需自己部署tomcat
配置的一些扫描为什么不需要配置了 因为SpringBoot有自动配置功能
@SpringBootApplication
@SpringBootConfiguration:它的本质就是 @Configuration,Spring的配置标签
@EnableAutoConfiguration:开启自动配置
@ComponentScan:开启组件扫描
SpringApplication.run:启用/运行引用
1: 加载配置类,2:解析配置类:实现扫描组件,实现自动装配等等..,3:打包项目,部署到tomcat中,4:启动tomcat
@Configuration :Spirng的配置标签,打在某个类上,这个类就可以被是被为Spring的配置类
@Bean: Spring的Bean标签打在方法上,那么该方法返回的实例对象就可以交给Spring容器管理
IOC组件扫描
@Compoent,@Service...的类 直接交给Spring管理, @CompoentScan会去扫描这些组件 当然在启动类上已经有了@SpringBootApplication 则里面有包含@CompoentScan此注解
Bean的详情
bean的id:就是方法的名字
bean的name:通过 @Bean标签的 name 属性去指定
bean的 scope : @Scope("prototype")
bean的 初始化方法: 通过 init-method="" 属性去指定
bean的销毁方法:通过 destroy-method="" 属性去指定
SpringBoot测试类
配置之间的引入
@Import(xxx.class) 相当于引入一个文件
@ImportResource("classpath:applicatContext.xml") 导入配置文件
@PropertySource("classpath:jdbc.properties") 导入资源文件到当前环境中 加value一起使用
第一种方式
第二种方式
@Profile和@ActiveProfiles
@Profile配置
@ActiveProfiles 指定当前活动的配置环境要
假设一个测试环境 一个是开发环境 如果你想随时切换 环境的话
比如在测试环境类上贴@Profile("test") 在开发环境上贴@Profile("dev")
当你在启动类上贴@ActiveProfiles("test") 就会执行测试环境 你要贴@ActiveProfiles("dev")就会执行开发环境 就是一个环境切换