初见SpringBoot

本文详细介绍了SpringBoot的核心特性,包括快速搭建、Java配置、属性注入、yaml配置、自动配置原理。还探讨了Lombok在实体类开发中的简化作用,以及如何整合SpringMVC、连接池、Mybatis和Junit进行测试。最后,讲解了SpringBoot项目的部署流程。
摘要由CSDN通过智能技术生成

SpringBoot简介

便于搭建 基于Spring的工程 的脚手架,减少xml配置;
帮助开发人员快速搭建大型的Spring项目,简化工程配置,依赖管理

SpringBoot快速入门

  • 开发步骤:
    • 添加依赖(启动器依赖,spring-boot-starter-web)
    • 创建启动器类
    • 创建处理器Controller
    • 测试

spring-boot-starter-web默认的应用服务器端口是8080

Java代码方式配置

  • 在类上加@Configuration将Java文件识别为配置文件
  • @PropertySource("classpath:jdbc.properties")加载配置文件

使用注解方式配置jdbc连接

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
    @Value("${jdbc.driverClassName}")
    private String driverClassName;
    @Value("${jdbc.url}")
    private String url;
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;

    @Bean
    public DataSource getDateSource() {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(driverClassName);
        dataSource.setUrl(url);
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        return dataSource;
    }
}

SpringBoot属性注入的方式

使用@ConfigurationProperties实现SpringBoot的配置文件配置项读取和应用

  • 使用@ConfigurationProperties编写配置类,将配置文件配置项设置到对象中

JdbcProperties.java

//prefix = "jdbc" 表示jdbc.properties中的属性都是以jdbc.开头的
@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
    private String driverClassName;
    private String url;
    private String username;
    private String password;
    public String getDriverClassName() {
        return driverClassName;
    }
    public void setDriverClassName(String driverClassName) {
        this.driverClassName = driverClassName;
    }
    public String getUrl() {
        return url;
    }
    public void setUrl(String url) {
        this.url = url;
    }
    public String getUsername() {
        return username;
    }
    public void setUsername(String username) {
        this.username = username;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
}

JdbcConfig.java

@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
    @Bean
    public DataSource getDateSource(JdbcProperties jdbcProperties) {
        DruidDataSource dataSource = new DruidDataSource();
        dataSource.setDriverClassName(jdbcProperties.getDriverClassName());
        dataSource.setUrl(jdbcProperties.getUrl());
        dataSource.setUsername(jdbcProperties.getUsername());
        dataSource.setPassword(jdbcProperties.getPassword());
        return dataSource;
    }
}

  • 在方法上使用@ConfigurationProperties

JdbcProperties.java

@Bean
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
    return new DruidDataSource();
}

注意:jdbc.properties文件要改名为application.properties
要导入spring-boot-configuration-processor坐标

yaml配置文件

  • yaml与properties配置文件除了展示形式不相同以外,其它功能和作用都是一样的;在项目中原路的读取方式不需要改变。
  • yaml与yml一样,只是叫法不同
  • yml文件的特征:
    • 树状层级结构展示配置项
    • 配置项之间如果有关系需要分行空两格
    • 配置项如果有值,需要在:之后空一格再写配置值
jdbc:
  driverClassName: com.mysql.jdbc.Driver
  url: jdbc:mysql://127.0.0.1:3306/heima
  username: root
  password: root

key:
  abc: cba
  def:
    - g
    - h
    - j
  • SpringBoot允许多个yml配置文件,这些配置文件的名称必须为application-***.yml,并且这些配置文件必须要在application.yml配置文件中配置之后才可以使用
#激活配置文件;需要指定其它的配置文件名称 ,只需要写application-后面的值
spring:
  profiles:
    active: abc,def
  • properties和yml配置文件同时存在,若存在同名配置,以properties为主

自动配置原理

  • META-INF\spring.factories文件中定义了很多自动配置类;可以根据在pom.xml文件中添加的 启动器依赖自动配置组件
  • 通过如下流程可以去修改application配置文件,改变自动配置的组件默认参数
    在这里插入图片描述

lombok应用

  • 实现实体类的开发简化,不需要手动编写 getter/setter 等方法
  • 使用:
    • IDEA中安装 lombok 插件
    • 添加lombok依赖 lombok
    • 在pojo上添加注解
  • 在Bean上使用:
    @Data :自动提供getter和setter、hashCode、equals、toString等方法
    @Getter:自动提供getter方法
    @Setter:自动提供setter方法
    @Slf4j:自动在bean中提供log变量,其实用的是slf4j的日志功能。
import lombok.Data;

@Data
public class user {
    private String name;
    private Integer age;
}
logging:
  level:
   com.itheima: debug
   org.springframework: info

先在要进行日志记录的类上加上@slf4j注解,然后在application.yml配置文件中配置级别

整合SpringMVC端口和静态资源

  • 修改tomcat的端口和访问项目中的静态资源
  • 修改tomcat端口:
    查询xxxProperties,设置配置项(前缀+类变量名)到application配置文件中
#tomcat端口
server:
  port: 80
  • 访问项目中的静态资源:
    autoconfigure/web/Resource下查看CLASSPATH_RESOURCE_LOCATIONS
    在这里插入图片描述
    创建static文件夹到resources目录下,并放置静态资源然后访问这些资源

整合SpringMVC拦截器

  • 步骤
    • 编写拦截器(实现HandlerInterceptor)
    • 编写配置类实现 WebMvcConfigurer,在该类中添加各种组件
    • 测试

WebMvcConfigurer.java

@Configuration
public class MvcConfig implements WebMvcConfigurer {
    //注册拦截器
    @Bean
    public MyInterceptor myInterceptor(){
        return new MyInterceptor();
    }
    //添加拦截器到spring mvc拦截器链
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        registry.addInterceptor(myInterceptor()).addPathPatterns("/*");
    }
}

整合-连接池

  • 配置Spring Boot自带默认的hikari数据库连接池(效率比Druid要高,安全性较低)
  • 步骤
    • 添加spring-boot-starter-jdbc依赖坐标
    • 在application配置文件中指定数据库相关参数
spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/springboot_test
    username: root
    password: root

整合-Mybatis

  • 设置mybatis的实体类别名,输出执行sql语句配置项
  • 步骤:
    • 添加启动器依赖mybatis-spring-boot-starter
    • 配置Mybatis:实体类别名包,日志,映射文件等
    • 在SpringBoot启动器类中配置MapperScan
mybatis:
  # 实体类别名包路径
  type-aliases-package: com.itheima.pojo
  # 映射文件路径
  # mapper-locations: classpath:mappers/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

在这里插入图片描述

整合-Junit

  • 步骤
    • 添加启动器依赖spring-boot-starter-test
    • 编写测试类(在类上Ctrl+Shift+T)
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserServiceTest {
    @Autowired
    private UserService userService;
    @Test
    public void queryById() {
        User user = userService.queryById(8L);
        System.out.println("user = " + user);
    }
}

在Spring Boot项目中如果编写测试类则必须要在类上面添加@SpringBootTest

项目部署

  • 步骤
    • 需要添加打包组件将项目中的资源、配置、依赖包打到一个jar包中
      可以使用maven的package
    • 控制台输入命令部署:java -jar 包名

pom.xml

<build>
    <plugins>
       <!-- 打jar包时如果不配置该插件,打出来的jar包没有清单文件 -->
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

部署运行

java -jar 包名

关闭项目

  • cmd中输入 jps
    在这里插入图片描述
  • 打开任务管理器,详细信息,结束进程即可

参考

2020年IDEA版黑马Java :BV1WZ4y1H7du

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值