在maven文件中加入如下的依赖:
org.springframework.boot
spring-boot-starter-parent
2.1.6.RELEASE
org.springframework.boot
spring-boot-starter-web
spring-boot的主配置文件名字按照约定叫application.yml或者application.properties,推荐使用application.yml,文件的内容如下:
server:
port: 8080
spring:
application:
name: first-spring-boot
@SpringBootApplication
public class FirstBootApplication {
public static void main( String[] args ) {
SpringApplication.run(FirstBootApplication.class, args);
}
}
spring-boot的启动类上必须要加上@SpringBootApplication这个注解。
@RestController
@RequestMapping("first")
public class FirstController {
@RequestMapping
public Object print() {
return Arrays.asList("hello", "world");
}
}
启动主程序,然后在浏览器中输入:http://localhost:8080/first
在spring-boot应用启动的时候,会出现一个很大的“Spring”字样,那么我们如何修改呢?
在resources资源文件下创建一个名为banner.txt的文件,然后在这个文件中去定义我们自己想要的内容。目前网上有很多可以定制各种字样的网站。
日志任何一个项目都必须要存在的,它可以记录我们的很多信息 ,例如报错信息,访问信息等,方便我们进行系统的调试和数据的分析,那么我们就得选择一个好的日志框架。我们这节主要讲解Logback这个日志框架,它的执行速度上比Log4j可以快上最高10倍以上。
使用Logback我们首先得定义名为logback-spring.xml文件,文件的内容如下:
%d{yyyy-MM-dd HH:mm:ss.SSS} -- %-4relative %-5level %logger{32} %thread -- %msg%n
utf-8
D:/logs/logback.%d{yyyy-MM-dd}.%i.log
30
20MB
400MB
%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %thread -- %msg%n
utf-8
%d: 日期转换,花括号中指定日期的格式。
%-4relative: 该条日志输出的时间,这个时间是相对于服务器启动到打印出这条日志的相对时间,4表示时间占用的宽度。
%-5level: 日志的级别,日志总共5个级别,分别是debug,info,warn,error,fatal,从左往右日志级别越高,5表示日志级别占用的字符宽度。
%thread:该日志所属的线程。
%msg:日志信息。
%logger{32}:输出该日志信息的类,32表示包的层级。
%n: 换行。
4.1基本语法
k:(空格)v: 表示一对键值对,空格是必须的。
以空格的缩进控制层级关系,空多少个格子没有特定的要求,只要左端对齐,都是同一级的数据。
spring:
datasource:
username: root
password: 123456
4.2 值的写法
A. 字面量:普通的值(数字,字符串,布尔值)
person:
name: zhangsan
male: false
age: 20
B. 数组或者集合(类似于java中的List、Set)
pets:`
- cat
- dog
- pig
Thymeleaf是面向Web和独立环境的现代服务器端Java模板引擎,能够处理HTML, XML, JavaScript, CSS甚至纯文本。Thymeleaf的主要目标是提供一个优雅和高度可维护的创建模板的方式。为了实现这一点,它建立在自然模板的概念上,将其逻辑注入到模板文件中,不会影响模板被用作设计原型。这改善了设计的沟通,弥合了设计和开发团队之间的差距。Thymeleaf也从一开始就设计了Web标准 - 特别是HTML5 - 允许您创建完全验证的模板,如果这是您需要的。下面我们就开始学习spring-boot是如何整合thymeleaf.
org.thymeleaf
thymeleaf
3.0.11.RELEASE
org.thymeleaf
thymeleaf-spring5
3.0.11.RELEASE
spring:
resources:
#静态资源的存放位置,名字也可以叫/public
static-locations: classpath:/static/
thymeleaf:
enabled: true #是否使用thymeleaf模板引擎
cache: false #是否缓存,在开发阶段设置false, 生产上为true
encoding: utf-8
mode: html
prefix: classpath:/templates/ #模板存放的位置
suffix: .html #后缀
A. 引入命名空间
B. 资源引入与普通链接
th:src="@{}"
th:href="@{}"
百度
C. 普通取值
D. 字符串拼接
E. 链接取值
删除
删除
删除
F. 条件判断
hello
hello
G. 其他形式的条件判断
if-then
if-then-else
if-else
H. 等值判断比较
超级管理员
普通用户
其他用户
I. 循环遍历
ID
用户名
其中u为每次遍历的数据,stat为状态,状态总共有以下几种方式:
状态码 | 描述信息 |
---|---|
first | 是否为第一条数据 |
last | 是否为最后一条数据 |
even | 是否为偶数条数据 |
odd | 是否为奇数条数据 |
index | 数据的索引 |
count | 数据是第几条 |
size | 遍历的数据的总量 |
current | 当前遍历的数据 |
J. map
----
K. 模板表达式
thymeleaf提供了丰富的模板表达式,而且有很多的方法用以使用,主要包括以下模板表达式:
3)#strings
${#strings.isEmpty(name)}
${#strings.contains(name,‘ez’)}
${#strings.containsIgnoreCase(name,‘ez’)}
${#strings.startsWith(name,‘Don’)}
${#strings.endsWith(name,endingFragment)}
${#strings.indexOf(name,frag)}
${#strings.substring(name,3,5)}
${#strings.replace(name,‘las’,‘ler’)}
${#strings.listSplit(namesStr,’,’)}
${#strings.trim(str)}
${#strings.equals(str)}
${#strings.equalsIgnoreCase(str)}
${#strings.prepend(str,prefix)}
${#strings.append(str,suffix)}
${#strings.toUpperCase(name)}
${#strings.toLowerCase(name)}
com.alibaba
druid-spring-boot-starter
1.1.17
org.mybatis.generator
mybatis-generator-core
1.3.7
com.github.pagehelper
pagehelper-spring-boot-starter
1.2.12
tk.mybatis
mapper
4.1.5
tk.mybatis
mapper-spring-boot-starter
2.1.5
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.7
Generate MyBatis Artifacts
generate
org.mybatis.generator
mybatis-generator-core
1.3.7
mysql
mysql-connector-java
8.0.16
src/main/resources/mybatis-generator-config.xml
true
jdbc.properties,该文件与application.yml并不同,它仅仅是用于mybatis生成代码用。
mysql.url=jdbc:mysql://localhost:3306/qf?useSSL=false&serverTimezone=UTC
mysql.driver=com.mysql.cj.jdbc.Driver
mysql.username=root
mysql.password=123456
mybatis-generator-config.xml
6.2.3 执行生成代码
spring:
datasource:
url: jdbc:mysql://localhost:3306/qf?useSSL=false&serverTimezone=UTC
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
initial-size: 5
max-active: 8
min-idle: 2
validation-query: 'select 1'
test-on-borrow: false
test-on-return: false
test-while-idle: true
# psCache, 缓存preparedStatement, 对支持游标的数据库性能有巨大的提升,oracle开启,mysql建议关闭
pool-prepared-statements: false
# psCache开启的时候有效
max-open-prepared-statements: 100
# 一个连接在被驱逐出连接池的时候,在连接池中最小的空闲时间,单位为毫秒
min-evictable-idle-time-millis: 30000
# 距离上次释放空闲连接的时间间隔
time-between-eviction-runs-millis: 30000
pagehelper:
dialect: mysql #配置数据库的方言
# 分页合理化参数,默认值为false。当该参数设置为 true 时,pageNum<=0 时会查询第一页, pageNum>pages(超过总数时),会查询最后一页
reasonable: true
# 支持通过 Mapper 接口参数来传递分页参数
support-methods-arguments: true
mybatis:
mapper-locations: classpath:/mybatis.mapper/*.xml
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
import tk.mybatis.mapper.common.Mapper;
import tk.mybatis.mapper.common.MySqlMapper;
public interface MyMapper extends Mapper, MySqlMapper {
}
import com.github.pagehelper.Page;
import com.qf.pojo.MyUser;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface MyUserMapper extends MyMapper {
List selectAll();
Page selectPage();
}
import com.github.pagehelper.PageHelper;
import com.qf.dao.MyUserMapper;
import com.qf.pojo.MyUser;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
@Resource
private MyUserMapper myUserMapper;
public List getList() {
PageHelper.startPage(1, 2);
Example example = new Example(MyUser.class);
List list = myUserMapper.selectByExample(example);
return list;
}
}
参考地址:
mybatis官网参考地址:http://www.mybatis.org/spring-boot-starter/
mybatis生成代码官网参考地址:http://www.mybatis.org/generator/
##### 6.3.4 服务层编写
import com.github.pagehelper.PageHelper;
import com.qf.dao.MyUserMapper;
import com.qf.pojo.MyUser;
import org.springframework.stereotype.Service;
import tk.mybatis.mapper.entity.Example;
import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
@Resource
private MyUserMapper myUserMapper;
public List getList() {
PageHelper.startPage(1, 2);
Example example = new Example(MyUser.class);
List list = myUserMapper.selectByExample(example);
return list;
}
}
参考地址:
**mybatis官网参考地址: **
**mybatis生成代码官网参考地址: **
**配置文件编写参考地址:**