springBoot基本使用
1.如何打包
引入打包插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后在右边点击mavan-project里面有个springboot,然后点击lifecycle,里面有个package,双击就可以打包
2.springboot热部署
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
个人觉得很鸡肋
在运行之前需要先按住ctrl+F9,进行编译后才能使用
3.yml基本语法
这个直接百度就行了,多的一匹
这里只简单写几个例子
user:
username: ls
password: 456
age: 99
@Value("${user.username}")
如何在配置类中进行取值
4.多环境的切换
两种方式
方式一:在一个配置文件里面
spring:
profiles:
active: test #激活(选择)环境test
---
spring:
profiles: dev #指定环境名字dev
server:
port: 9999
---
spring:
profiles: test #指定环境名字test
server:
port: 8888
方式二:写多个配置文件,后缀名不一样,通过后缀名来获取
比如application-dev.yml
server:
port: 9999
application-test.yml
server:
port: 8888
application.yml
spring:
profiles:
active: test
#根据文件名字配置 application-dev.properties
个人比较喜欢第二种方式,看着简洁,第一种方式装逼适合
5.日志的使用
指定配置文件配置logback-spring.xml
直接拷贝就行,以后也是用的这种方式
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义常量 : 日志格式 -->
<property name="CONSOLE_LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} ----> [%thread] ---> %-5level %logger{50} - %msg%n"/>
<!--ConsoleAppender 用于在屏幕上输出日志-->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<!--定义控制台输出格式-->
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--打印到文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>logs/springboot.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>logs/springboot-%d{yyyyMMdd}-%i.log.gz</fileNamePattern>
<maxFileSize>1KB</maxFileSize>
<maxHistory>30</maxHistory>
<!--总上限大小-->
<totalSizeCap>5GB</totalSizeCap>
</rollingPolicy>
<!--定义控制台输出格式-->
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!--root是默认的logger 这里设定输出级别是debug-->
<root level="info">
<!--定义了两个appender,日志会通过往这两个appender里面写-->
<appender-ref ref="stdout"/>
<appender-ref ref="file"/>
</root>
<!--如果没有设置 additivity="false" ,就会导致一条日志在控制台输出两次的情况-->
<!--additivity表示要不要使用rootLogger配置的appender进行输出-->
<logger name="cn.itsource" level="error" additivity="false">
<appender-ref ref="stdout"/>
<appender-ref ref="file"/>
</logger>
</configuration>
6.SpringBoot集成Thymeleaf
模板技术,类似于以前用的jsp啊什么的,springBoot就是用这个来进行页面的展示的
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
创建模板
在template中创建
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<h1>成功!</h1>
<!--使用语法th:text 将div里面的文本内容设置为 -->
<div th:text="${msg}">这是显示欢迎信息</div>
</body>
</html>
在controller里面写入
@Controller
public class HelloController {
@RequestMapping("/index")
public String hello(Model model){
model.addAttribute("msg","后面有人,认真听课" );
return "hello";
}
}
7拦截器
第一步自己写一个类
这个类可以去继承HandlerInterceptorAdapter
也可以实现它的父类
@Component
public class MyInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
System.out.println("我被拦截了");
return super.preHandle(request, response, handler);
}
第二步
在主配置类中去实现WebMvcConfigurer
并且重写方法,将需要拦截的和不需要拦截的都可以在这里配置
public class ApplicationConfig implements WebMvcConfigurer {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/login");
}
}
8.springboot继承datasource
导入3个包
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.20</version>
</dependency>
<!-- mysql 数据库驱动. -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.1.1</version>
</dependency>
</dependencies>
这里采用自动配置
在yml中写
spring:
datasource:
username: root
password: 123456
url: jdbc:mysql:///st
driver-class-name: com.mysql.jdbc.Driver
type: com.alibaba.druid.pool.DruidDataSource
9.springboot如何配置mybatis
在resource中命名一个cn/itsource/hello/mapper
在这个包里面有一个xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yyk.hello.mapper.UserMapper">
<!-- 通用查询映射结果 -->
<resultMap id="BaseResultMap" type="com.yyk.hello.domain.User">
<id column="id" property="id" />
<result column="username" property="username" />
<result column="age" property="age" />
</resultMap>
<select id="selectAll" resultMap="BaseResultMap">
select id,username ,age
from USER
</select>
</mapper>
第二步创建对应的domain和mapper
第三步在yml中配置
#配置Mybatis
mybatis:
mapper-locations: classpath:cn/itsource/hello/mapper/*Mapper.xml
第四步在主配置类中
在类的头部加入
@MapperScan("com.yyk.hello.mapper")