美文网首页面试技巧
面试介绍SpringBoot流程

面试介绍SpringBoot流程

作者: 奇点一氪 | 来源:发表于2018-08-19 19:12 被阅读528次

什么是springboot

用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)
创建独立的spring引用程序 main方法运行
嵌入的Tomcat 无需部署war文件
简化maven配置
自动配置spring添加对应功能
starter自动化配置

springboot常用的starter有哪些

spring-boot-starter-web 嵌入tomcat和web开发需要servlet与jsp支持
spring-boot-starter-data-jpa 数据库支持
spring-boot-starter-data-redis redis数据库支持
spring-boot-starter-data-solr solr支持
mybatis-spring-boot-starter 第三方的mybatis集成starter

springboot自动配置的原理

在spring程序main方法中 添加@SpringBootApplication或者@EnableAutoConfiguration会自动去maven中读取每个starter中的spring.factories文件 该文件里配置了spring容器中所有需要的bean

springboot读取配置文件的方式

springboot默认读取配置文件为application.properties或者是application.yml

springboot集成mybatis的过程

添加mybatis的starter maven依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
在mybatis的接口中 添加@Mapper注解
在application.yml配置数据源信息

SpringBoot集成热部署?

把依赖项添加至pom.xml 中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
</dependency>
重启应用程序,然后就可以了

我们能否在 spring-boot-starter-web 中用 jetty 代替 tomcat?

在 spring-boot-starter-web 移除现有的依赖项,并把下面这些添加进去。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>

RequestMapping 和 GetMapping 的不同之处在哪里?

  • RequestMapping 具有类属性的,可以进行 GET,POST,PUT 或者其它的注释中具有的请求方法。
  • GetMapping 是 GET 请求方法中的一个特例。它只是 ResquestMapping 的一个延伸,目的是为了提高清晰度

自定义属性与加载

http://www.spring4all.com/article/248

自定义属性与加载

在application.properties文件中配置相关属性

com.didispace.blog.name=程序猿DD
com.didispace.blog.title=Spring Boot教程

创建一个文件读取的class类,使用component注释:(把普通pojo实例化到spring容器中)

@Component
public class BlogProperties {
    @Value("${com.didispace.blog.name}")
      //采用@Value("${前缀}")方式注入属性
    private String name;
    @Value("${com.didispace.blog.title}")
    private String title;
    // 省略getter和setter
}

多环境配置

我们在开发Spring Boot应用时,通常同一套程序会被安装到几个不同的环境,比如:开发、测试、生产等。对于多环境的配置,通过配置多份不同环境的配置文件,再通过打包命令配置不停的环境配置。
在Spring Boot中多环境配置文件名需要满足application-{profile}.properties的格式,其中{profile}对应你的环境标识,比如:

  • application-dev.properties:开发环境
  • application-test.properties:测试环境
  • application-prod.properties:生产环境
    至于哪个具体的配置文件会被加载,需要在application.properties文件中通过spring.profiles.active属性来设置,其值对应{profile}值。
    如:spring.profiles.active=test就会加载application-test.properties配置文件内容

SpringBoot是什么

SpringBoot启动类介绍

SpringBoot配置properties/yml

SpringBoot多属性配置

注解

  • 配置的注解
  • 创建程序的注解
    @RestController注解相当于@ResponseBody + @Controller
    @RequestMapping 处理请求地址映射。
    @PathVariable URL 映射时,用于绑定请求参数到方法参数
    @RequestBody 这里注解用于读取请求体 boy 的数据,通过 HttpMessageConverter 解析绑定到对象中
    @Service
    @Transactional 事务注解
    @Autowired 注释,它可以对类成员变量、方法及构造函数进行标注,完成自动装配的工作。

Spring Boot 使用Swagger2构建RESTful API

在pom.xml中加入Swagger2的依赖
创建Swagger2配置类:在Application.java同级创建Swagger2的配置类Swagger2。

多数据源配置

在pom文件中引入jsbc的依赖
在.yml文件中配置数据源配置

Spring Boot 使用Redis

pom引入redis依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
</dependency>
  • 在application.properties中加入Redis服务端的相关配置
  • 通过自动配置的StringRedisTemplate对象进行Redis的读写操作

springboot-mybatis 工程

  • pom 添加 Mybatis 依赖
  • 在 application.properties 应用配置文件,增加 Mybatis 相关配置
  • 数据操作层接口类添加注解 @Mapper

多数据源的应用场景

<!-- Druid 数据连接池依赖 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid}</version>
        </dependency>

Spring Boot中使用@Scheduled创建定时任务

  • 在Spring Boot的主类中加入@EnableScheduling注解,启用定时任务的配置
  • 创建定时任务实现类
@Component
public class ScheduledTasks {
    private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");

    @Scheduled(fixedRate = 5000)
    public void reportCurrentTime() {
        System.out.println("现在时间:" + dateFormat.format(new Date()));
    }
}

Spring Boot中使用JavaMailSender发送邮件

在Spring Boot的工程中的pom.xml中引入spring-boot-starter-mail依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>

application.properties中加入mail相关配置
直接通过@Autowired来引入邮件发送对象。

@Autowired
private JavaMailSender mailSender;

将邮件信息添加到 SimpleMailMessage对象中调用javaMailSender

Spring Boot使用Redis做集中式缓存

pom.xml中增加redis的依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-redis</artifactId>
</dependency>

application.properties中增加redis配置,

相关文章

网友评论

    本文标题:面试介绍SpringBoot流程

    本文链接:https://www.haomeiwen.com/subject/bfjfvftx.html