Spring框架基础之SpringBoot
SpringBoot 定义
SpringBoot 是对spring 框架封装,便于搭建Spring 项目,简化开发过程。
SpringBoot 集成了原生Spring IOC/AOP/DAO/MVC/Data以及其他技术。
SpringBoot优势
- SpringBoot提供了内置tomcat服务器
- SpringBoot完全采用了Java配置模式,取消了XML配置
- SpringBoot提供了一系列工具集合,简化jar包引入
- SpringBoot提供自动配置功能,自动创建大量常用对象,例如dataSource/jdbcTemplate等
- SpringBoot采用Jar包发布,不需要采用war包
MAVEN工具
MAVEN 是一个项目构建工具,,可以创建项目/编译/打包/发布等功能;开发中使用MAVEN,主要在于jar包导入管理和工程结构管理。
SpringBoot 启动过程
SpringBoot 采用SpringApplication.run 方法为入口启动Boot程序,加载了一个带有@SpringBootApplication标记的类型参数,该标记开启了自动配置/组件扫描/ 实现bean定义等功能,创建出spring 对象:
@SpringBootApplication 是一个复合标记,包含以下三种标记:
- @SpringBootConfiguration
作用:实现bean定义。该标记是对Spriing中@Configuration封装,经常结合@Bean/@Import标记使用。
采用Java配置形式,将组件对象添加到Spring容器中 。
写一个Java配置类,相当于applicationContext.xml文件
//@Configuration
@SpringBootConfiguration
public class BeansConfiguration{
//<bean id="deptDao " class="cn.xdl.DeptDao">==@Bean
@Bean //<bean>定义,将返回的DeptDao对象添加到SpringBoot容器中,默认方法名做Id
@Primary //当方法名相同时,@Autowired无法识别时 @Primary可指定默认注入使用的对象
public DeptDao deptDao(){
return new DeptDao();
}
//<bean id="dao1" class="cn.xdl.DeptDao">
@Bean(name="dao1") //将返回的DeptDao对象添加到SpringBoot容器中,指定id=dao1
public DeptDao deptDao1(){
return new DeptDao();
}
}
创建SpringBoot 容器
public class MyBootApplicatioon{
public static void main(String[] args){
//相当于ApplicationContext app = new
ClassPathXmlApplicationContext(" applicationContext.xml");
ApplicationContext app = SpringApplication.run(BeansConfiguration.class);
DeptDao dao1 = app.getBean("dao1" ,DeptDao.class);
dao1.save();
}
}
-
@ComponentScan(组件扫描)
- 作用:
@ComponentScan(basePsackage="包名") 指定扫描包; @ComponentScan 默认扫描当前包和子包下的文件;
-
用到的注解:
@Component 、@Repository、@Service 、@Controller
-
id名
默认类名首字母小写 可以使用标注指定 ,如:@Service(“id”)
-
@EnableAutoConfiguration( 自动配置)
-
概念:在SpringBoot启动中,自动加载某些组件,创建对象的过程称为自动配置
-
SpringBoot想开启自动配置功能,需使用@EnableAutoConfiguration 开启(配置类使用);
如果自动配置组件与bean定义冲突的情况下,会失效; -
自动配置原理: 当@EnableAutoConfiguration 开启自动配置时,内部会通过AutoConfigurationImportSelector加载所有AutoConfiguration开发包中的META-INF/spring factories 文件。其底层依然使用的时@Configuration+@Bean定义
-
配置参数注入
@ConfigurationProperties 标记可以将properties配置文件中的参数注入给对象属性,需要自动配置组件ConfigurationPropertiesAutoConfiguration 类的支撑。
-使用以下两种方法注入application.properties文件中的内容:
1. 使用@ConfigrationProperties //类前使用 2. 使用@Value("key ")//成员变量前使用,key为Properties文件中的key值 注:@configrationProperties 配置参数 默认按名称一致规则注入; 若不一致可使用@ConfigurationProperties( prefix=“spring.datasource”)或者@Value(“spring.datasource.key”)
-