SpringBoot
第一章
1 为什么要使用 Spring Boot 因为Spring ,SPringMVC需要使用大量的配置文件(xml文件) 还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象。需要了解其他框架配置规则。
2 SpringBoot 就相当于不用配置文件的SpringMVC+Spring。
JavaConfig
使用Java的方式去创建Bean
@Configuration
@Bean
-
创建一个自定义的类(例如SpringConfig) ,并使用@Configuration进行标注,那么SpringConfig这个类就相当于Spring中的beans.xml
-
在此类中添加方法,返回需要的对象类型,并使用@Bean 进行标注,即可通过容器获取到声明的对象。
@ImportResource 作用于类
作用:导入其他的一个或者多个xml配置文件,等于在xml中
导入其他的applicationContext.xml 配置文件,可以获取到xml中bean标签向容器中注入的实体。 例如:classpath:applcationContext.xml
@PropertyResource
作用:用于读取properties属性配置文件.使用属性配置文件可以实现外部化配置,在程序代码之外提供数据
步骤:
1. 在resources目录下创建一个*.properties 文件,使用k=v格式提供数据
2. 在PropertyResource指定properties的位置
3. 使用@Value(value="${key}")
SpringBoot 入门
SpringBoot 是Spring中的一员,可以简化Spring,SpringMVC的使用。核心还是IOC容器。 特点:
-
创建Spring应用
-
内置Tomcat,jetty,Undertow
-
提供了starter的起步依赖,简化应用的配置
-
在Spring中需要配置Mybatis对象SqlSessionFactory,Dao的代理对象
-
在SpringBoot中提供了pom :mybatis-spring-boot-starter依赖替代
-
去配置spring和第三方库。叫做自动配置(就是把spring中的第三方对象都创建好,放到容器中,开发人员可以直接使用)
@SpringBootApplication
这个是一个复合注解,由多个注解组成
- @SpringBootConfiguration(此注解有@Configuration注解标记,说明这个可以作为配置文件使用的)
- @EnableAutoConfiguration:启动自动配置,把java对象配置好,注入到spring容器中。例如可以把mybatis的对象创建好,放到容器中
- @ComponentScan 扫描器,找到注解,根据注解的功能创建对象,给属性赋值等等。
SpringBoot配置文件
配置文件名称:application 扩展名有两种properties(k=v) yaml(k:v)
@ConfigurationProperties(prefix = "school")
将yaml或者properties中的同名属性包装成实体
@Component
@ConfigurationProperties(prefix = "school")
public class SchoolInfo {
private String name;
private String website;
@Override
public String toString() {
return "SchoolInfo{" +
"name='" + name + ''' +
", website='" + website + ''' +
'}';
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWebsite() {
return website;
}
public void setWebsite(String website) {
this.website = website;
}
}
CommandLineRunner和ApplicationRunner
可以在容器创建之后执行初始化操作
拦截器
实现 WebMvcConfigurer,添加拦截器
操作数据库
方式1:@Mapper 注解修饰每个Dao接口 方式2: @MapperScan(basePackages={"包名1","包名2"}) 注解修饰Application
Mapper和java文件分开存储
mybatis:
mapper-locations: classpath:mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>
**/*.xml
</include>
</includes>
</resource>
</resources>
将mapper文件移动到resources/mapper/目录下
事务
@EnableTransactionalManagement 作用于Application ,启用事务管理器 @Transactional作用于需要开启事务的方法