Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域标题(rapid application development)成为领导者。
Springboot=Spring+SpringMVC
① 创建独立的spring Application
② 内嵌tomcat 无需war包部署
③ 摒弃xml形式的开发
④ 简化maven配置
⑤ 以jar包形式运行
⑥ 自动配置Spring
注意
:入口类必须存放在当前主包下和子包平级
<parent>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-parentartifactId>
<version>2.1.5.RELEASEversion>
parent>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-webartifactId>
dependency>
<dependency>
<groupId>org.projectlombokgroupId>
<artifactId>lombokartifactId>
<version>1.18.8version>
dependency>
<dependency>
<groupId>mysqlgroupId>
<artifactId>mysql-connector-javaartifactId>
<version>5.1.38version>
dependency>
<dependency>
<groupId>com.alibabagroupId>
<artifactId>druidartifactId>
<version>1.0.31version>
dependency>
<dependency>
<groupId>org.mybatis.spring.bootgroupId>
<artifactId>mybatis-spring-boot-starterartifactId>
<version>1.3.3version>
dependency>
<dependency>
<groupId>org.apache.tomcat.embedgroupId>
<artifactId>tomcat-embed-jasperartifactId>
dependency>
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-tomcatartifactId>
dependency>
<dependency>
<groupId>jstlgroupId>
<artifactId>jstlartifactId>
<version>1.2version>
dependency>
//表示当前项目为Springboot应用
@SpringBootApplication
//指定dao包的位置 否则启动报错
@MapperScan(basePackages = "com.yt.dao")
public class UserModelApplication {
public static void main(String[] args) {
SpringApplication.run(UserModelApplication.class,args);
}
}
Tip:如果单纯为了测试Springboot启动是否正常并且没有涉及数据库操作时 避免报错 可以在@SpringBootApplication注解里添加以下代码:
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
server:
port: 9090
servlet:
context-path: /UserModel
#数据源
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/project
username: root
password: 123
#日期转换
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
#配置mapper
mybatis:
mapper-locations: classpath:com/yt/mapper/*Mapper.xml #指定mapper文件的位置
type-aliases-package: com.yt.entity #指定别名包
#打印日志的级别
logging:
level:
root: info
com.yt.dao: debug
注意:层级之间有Tab键间隔
- 默认配置文件没有内容
- 默认springboot端口号为8989
- 默认没有项目名
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )
logging.level.root=debug #设置父日志级别
logging.level.com.baizhi.conf=debug #设置指定包的日志级别
logging.file= 文件名|路径 建议使用 / 代表项目所在磁盘的根目录 此配置使logging.path失效
logging.path=路径+文件名
logging.pattern.console= [%p] [%d{yyyy-MM-dd HH:mm:ss}] %c %m %n 控制台的日志格式(yml需加单引号),
logging.pattern.file= 同上 文件的日志格式
Springboot测试
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-testartifactId>
dependency>
@SpringBootTest(classes = Application.class) //声明当前类为springboot的测试类 并且指定入口类
@RunWith(SpringRunner.class) // 在容器环境下启动测试
public class TestDao {
@Autowired
UserDao userDao;
@Test
public void testUserDao() {
List<User> users = userDao.queryAll();
for (User user : users) {
System.out.println(user);
}
}
}
Springboot中的日期格式
日期格式的返回
第一种:属性上加注解
@JsonFormat(pattern = "YYYY-MM-dd")
第二种:采用配置文件完成自动配置
spring:
jackson:
date-format: yyyy-MM-dd HH:mm:ss
time-zone: GMT+8
日期格式的接收 Springboot默认可以转换这种格式 1999/7/17
@DateTimeFormat(pattern = "YYYY-MM-dd")
全局配置文件
spring:
mvc:
date-format: yyyy-MM-dd HH:mm:ss