Spring Boot 学习

118 阅读3分钟

SpringBoot

第一章

1 为什么要使用 Spring Boot 因为Spring ,SPringMVC需要使用大量的配置文件(xml文件) 还需要配置各种对象,把使用的对象放入到spring容器中才能使用对象。需要了解其他框架配置规则。

2 SpringBoot 就相当于不用配置文件的SpringMVC+Spring。

JavaConfig

使用Java的方式去创建Bean

@Configuration

@Bean

  1. 创建一个自定义的类(例如SpringConfig) ,并使用@Configuration进行标注,那么SpringConfig这个类就相当于Spring中的beans.xml

  2. 在此类中添加方法,返回需要的对象类型,并使用@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容器。 特点:

  1. 创建Spring应用

  2. 内置Tomcat,jetty,Undertow

  3. 提供了starter的起步依赖,简化应用的配置

  4. 在Spring中需要配置Mybatis对象SqlSessionFactory,Dao的代理对象

  5. 在SpringBoot中提供了pom :mybatis-spring-boot-starter依赖替代

  6. 去配置spring和第三方库。叫做自动配置(就是把spring中的第三方对象都创建好,放到容器中,开发人员可以直接使用)

@SpringBootApplication

这个是一个复合注解,由多个注解组成

  1. @SpringBootConfiguration(此注解有@Configuration注解标记,说明这个可以作为配置文件使用的)
  2. @EnableAutoConfiguration:启动自动配置,把java对象配置好,注入到spring容器中。例如可以把mybatis的对象创建好,放到容器中
  3. @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作用于需要开启事务的方法