spring boot介绍
Spring Boot 是由 Pivotal 团队提供的全新框架,其设计目的是用来简化新 Spring 应用的初始搭建以及开发过程。   
  • 该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置
 
使用场景
  • web 后端项目都可以用spring boot来开发
 
spring boot的定位是入门级的微服务开发框架
 
特点:
编码简单
配置简单
学习成本低
部署简单
内置容器
 
 
1、新建项目的工具
工具:IDEA
创建方式:IDEA,Spring Tool Suite,https://start.spring.io/
前面两个工具可以直接构建,后面一个是spring 的官方网址,这个是构建一个基本的spring boot项目,然后需要下载下来解压
在eclipse中需要安装一个插件:sts
 
2、使用idea创建项目
创建演示
运行一个简单的程序
没有任何配置文件的指定的时候,项目的默认端口是8080,没有第二级的项目目录
 
3、项目的配置文件
spring boot支持多环境的配置,配置文件命名是application-环境名.yml
然后在主的配置文件中指定用哪个环境的配置文件
加载资源
 
4、集成mybatis
添加依赖
在配置文件中配置数据库连接信息
配置连接池
配置mybatis
启动类加扫描mapper文件的注解
 
5、定时任务
在启动类上添加开启定时任务的注解
在需要执行的任务上面直接使用时间表达式就可以

// 开启定时任务
@EnableScheduling

 
6、异步调用
在启动类上添加开启异步执行的注解

// 开启异步调用方法
@EnableAsync

 
7、整合Redis
添加依赖
完善配置文件
执行代码
 
8、自定义日志文件
logback-spring.xml自定义的日志文件
 
9、打包方式
maven的打包命令 打成jar包直接可以运行
打成war包
1 修改pom文件的jar为war
2 添加依赖
3 修改主启动文件 继承SpringBootServletInitializer类并重写方法
  • @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringDemoApplication.class); }
 
打成war包之后 访问的端口是Tomcat的端口,项目名也是war包的名称
 
自定义日志文件:logback-spring.xml
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration scan="true">
  3.  
  4. <!-- appName -->
  5. <property name="appName" value="mei-app-web-demo"/>
  6.  
  7. <!-- %m输出的信息,%p日志级别,%t线程名,%d日期,%c类的全名,,,, -->
  8. <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
  9. <encoder>
  10. <!--<pattern>%d %p (%file:%line\)- %m%n</pattern>-->
  11. <!--格式化输出:%d:表示日期 %thread:表示线程名 %-5level:级别从左显示5个字符宽度 %msg:日志消息 %n:是换行符-->
  12. <pattern>%black([${appName}]) %red(%-12(%d{yyyy-MM-dd HH:mm:ss.SSS})) %green(|-%-5level) %highlight([%thread] %c [%L]) -| %msg%n
  13. </pattern>
  14. <charset>utf-8</charset>
  15. </encoder>
  16. </appender>
  17.  
  18. <contextName>${appName}</contextName>
  19. <!-- 日志存储的绝对路径 -->
  20. <property name="logPath" value="f:/logs"/>
  21. <!--设置系统日志目录-->
  22. <property name="appDir" value="${appName}"/>
  23.  
  24. <!--
  25. 说明:
  26. 1、日志级别及文件
  27. 日志记录采用分级记录,级别与日志文件名相对应,不同级别的日志信息记录到不同的日志文件中
  28. 例如:error级别记录到log_error_xxx.log或log_error.log(该文件为当前记录的日志文件),而log_error_xxx.log为归档日志,
  29. 日志文件按日期记录,同一天内,若日志文件大小等于或大于2M,则按0、1、2...顺序分别命名
  30. 例如log-level-2013-12-21.0.log
  31. 其它级别的日志也是如此。
  32. 2、文件路径
  33. 若开发、测试用,在Eclipse中运行项目,则到Eclipse的安装路径查找logs文件夹,以相对路径../logs。
  34. 若部署到Tomcat下,则在Tomcat下的logs文件中
  35. 3、Appender
  36. FILEERROR对应error级别,文件名以log-error-xxx.log形式命名
  37. FILEWARN对应warn级别,文件名以log-warn-xxx.log形式命名
  38. FILEINFO对应info级别,文件名以log-info-xxx.log形式命名
  39. FILEDEBUG对应debug级别,文件名以log-debug-xxx.log形式命名
  40. CONSOLE将日志信息输出到控制上,为方便开发测试使用
  41. -->
  42.  
  43. <!-- 日志记录器,日期滚动记录 error -->
  44. <appender name="fileError" class="ch.qos.logback.core.rolling.RollingFileAppender">
  45. <!-- 正在记录的日志文件的路径及文件名 -->
  46. <file>${logPath}/${appDir}/log_error.log</file>
  47. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  48. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  49. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  50. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  51. <fileNamePattern>${logPath}/${appDir}/error/log-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  52. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  53. 命名日志文件,例如log-error-2013-12-21.0.log -->
  54. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  55. <maxFileSize>2MB</maxFileSize>
  56. </timeBasedFileNamingAndTriggeringPolicy>
  57. </rollingPolicy>
  58. <!-- 追加方式记录日志 -->
  59. <append>true</append>
  60. <!-- 日志文件的格式 -->
  61. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  62. <pattern>[${appName}]===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
  63. <charset>utf-8</charset>
  64. </encoder>
  65. <!-- 此日志文件只记录error级别的 -->
  66. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  67. <level>error</level>
  68. <onMatch>ACCEPT</onMatch>
  69. <onMismatch>DENY</onMismatch>
  70. </filter>
  71. </appender>
  72.  
  73. <!-- 日志记录器,日期滚动记录 warn -->
  74. <appender name="fileWarn" class="ch.qos.logback.core.rolling.RollingFileAppender">
  75. <!-- 正在记录的日志文件的路径及文件名 -->
  76. <file>${logPath}/${appDir}/log_warn.log</file>
  77. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  78. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  79. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  80. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  81. <fileNamePattern>${logPath}/${appDir}/warn/log-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  82. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  83. 命名日志文件,例如log-error-2013-12-21.0.log -->
  84. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  85. <maxFileSize>2MB</maxFileSize>
  86. </timeBasedFileNamingAndTriggeringPolicy>
  87. </rollingPolicy>
  88. <!-- 追加方式记录日志 -->
  89. <append>true</append>
  90. <!-- 日志文件的格式 -->
  91. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  92. <pattern>[${appName}]===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
  93. <charset>utf-8</charset>
  94. </encoder>
  95. <!-- 此日志文件只记录warn级别的 -->
  96. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  97. <level>warn</level>
  98. <onMatch>ACCEPT</onMatch>
  99. <onMismatch>DENY</onMismatch>
  100. </filter>
  101. </appender>
  102.  
  103. <!-- 日志记录器,日期滚动记录 info -->
  104. <appender name="fileInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
  105. <!-- 正在记录的日志文件的路径及文件名 -->
  106. <file>${logPath}/${appDir}/log_info.log</file>
  107. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  108. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  109. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  110. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  111. <fileNamePattern>${logPath}/${appDir}/info/log-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  112. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  113. 命名日志文件,例如log-error-2013-12-21.0.log -->
  114. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  115. <maxFileSize>2MB</maxFileSize>
  116. </timeBasedFileNamingAndTriggeringPolicy>
  117. </rollingPolicy>
  118. <!-- 追加方式记录日志 -->
  119. <append>true</append>
  120. <!-- 日志文件的格式 -->
  121. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  122. <pattern>[${appName}]===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
  123. <charset>utf-8</charset>
  124. </encoder>
  125. <!-- 此日志文件只记录info级别的 -->
  126. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  127. <level>info</level>
  128. <onMatch>ACCEPT</onMatch>
  129. <onMismatch>DENY</onMismatch>
  130. </filter>
  131. </appender>
  132.  
  133. <!-- 日志记录器,日期滚动记录 debug -->
  134. <appender name="fileDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">
  135. <!-- 正在记录的日志文件的路径及文件名 -->
  136. <file>${logPath}/${appDir}/log_debug.log</file>
  137. <!-- 日志记录器的滚动策略,按日期,按大小记录 -->
  138. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  139. <!-- 归档的日志文件的路径,例如今天是2013-12-21日志,当前写的日志文件路径为file节点指定,可以将此文件与file指定文件路径设置为不同路径,从而将当前日志文件或归档日志文件置不同的目录。
  140. 而2013-12-21的日志文件在由fileNamePattern指定。%d{yyyy-MM-dd}指定日期格式,%i指定索引 -->
  141. <fileNamePattern>${logPath}/${appDir}/debug/log-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
  142. <!-- 除按日志记录之外,还配置了日志文件不能超过2M,若超过2M,日志文件会以索引0开始,
  143. 命名日志文件,例如log-error-2013-12-21.0.log -->
  144. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  145. <maxFileSize>2MB</maxFileSize>
  146. </timeBasedFileNamingAndTriggeringPolicy>
  147. </rollingPolicy>
  148. <!-- 追加方式记录日志 -->
  149. <append>true</append>
  150. <!-- 日志文件的格式 -->
  151. <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
  152. <pattern>[${appName}]===%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %logger Line:%-3L - %msg%n</pattern>
  153. <charset>utf-8</charset>
  154. </encoder>
  155. <!-- 此日志文件只记录debug级别的 -->
  156. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  157. <level>debug</level>
  158. <onMatch>ACCEPT</onMatch>
  159. <onMismatch>DENY</onMismatch>
  160. </filter>
  161. </appender>
  162.  
  163. <!--<logger name="com.minlia" level="DEBUG"/>-->
  164. <!--<logger name="org.springframework.data.mybatis" level="DEBUG"/>
  165. <logger name="org.springframework.aop.aspectj" level="ERROR"/>
  166.  
  167. <logger name="javax.activation" level="WARN"/>
  168. <logger name="javax.mail" level="WARN"/>
  169. <logger name="javax.xml.bind" level="WARN"/>
  170. <logger name="ch.qos.logback" level="INFO"/>
  171.  
  172. <logger name="com.sun" level="WARN"/>
  173. <logger name="com.zaxxer" level="WARN"/>
  174. <logger name="io.undertow" level="WARN"/>
  175. <logger name="net.sf.ehcache" level="WARN"/>
  176. <logger name="org.apache" level="WARN"/>
  177.  
  178. <logger name="org.hibernate.validator" level="WARN"/>
  179. <logger name="org.hibernate" level="WARN"/>
  180. <logger name="org.hibernate.ejb.HibernatePersistence" level="OFF"/>
  181. <logger name="org.springframework.web" level="INFO"/>
  182. <logger name="org.springframework.security" level="WARN"/>
  183. <logger name="org.springframework.cache" level="WARN"/>
  184. <logger name="org.thymeleaf" level="WARN"/>
  185.  
  186. <logger name="sun.rmi" level="WARN"/>
  187. <logger name="liquibase" level="WARN"/>
  188. <logger name="sun.rmi.transport" level="WARN"/>
  189.  
  190. <logger name="jdbc.connection" level="ERROR"/>
  191. <logger name="jdbc.resultset" level="ERROR"/>
  192. <logger name="jdbc.resultsettable" level="INFO"/>
  193. <logger name="jdbc.audit" level="ERROR"/>
  194. <logger name="jdbc.sqltiming" level="ERROR"/>
  195. <logger name="jdbc.sqlonly" level="INFO"/>-->
  196.  
  197. <!-- 不同环境的日志配置 -->
  198. <springProfile name="dev">
  199. <root level="DEBUG">
  200. <!--<appender-ref ref="FILEERROR"/>-->
  201. <!--<appender-ref ref="FILEWARN"/>-->
  202. <!--<appender-ref ref="fileInfo"/>-->
  203. <!--<appender-ref ref="fileDebug"/>-->
  204. <appender-ref ref="CONSOLE"/>
  205.  
  206. </root>
  207. </springProfile>
  208.  
  209. <springProfile name="test">
  210. <root level="DEBUG">
  211. <!--<appender-ref ref="FILEERROR"/>-->
  212. <!--<appender-ref ref="FILEWARN"/>-->
  213. <appender-ref ref="fileInfo"/>
  214. <appender-ref ref="fileDebug"/>
  215. <appender-ref ref="CONSOLE"/>
  216.  
  217. </root>
  218. </springProfile>
  219.  
  220. <springProfile name="prod">
  221. <root level="DEBUG">
  222. <!--<appender-ref ref="FILEERROR"/>-->
  223. <!--<appender-ref ref="FILEWARN"/>-->
  224. <!-- <appender-ref ref="fileInfo"/>-->
  225. <!--<appender-ref ref="fileDebug"/>-->
  226. <appender-ref ref="CONSOLE"/>
  227.  
  228. </root>
  229. </springProfile>
  230.  
  231. </configuration>

spring boot初步的更多相关文章

  1. Spring Boot 初步小结

    Spring Boot 是一种开发模式,不涉及任何新的技术 1.了解自动配置的原理 2.常用application.yml文件的配置项 3.Spring Boot 及 第三方提供的各种 starter ...

  2. spring boot初步尝试

    第一次知道spring boot这个项目是为在学习spring的时候,在官网上看到的,那个时候不知道这个项目是干嘛的,也就没再继续关注了 这些天实习没什么事做,一直没用spring框架了,就想着去官网 ...

  3. Spring Boot初步认识

    Spring Boot 来源及背后 Spring Boot开发始于 2013 年,伴随Spring4.0而生,2014 年 4 月发布 1.0.0 版本.当前版本1.4.0,http://projec ...

  4. liunx 安装ActiveMQ 及 spring boot 初步整合 activemq

    源码地址:  https://gitee.com/kevin9401/microservice.git 一.安装 ActiveMQ: 1. 下载 ActiveMQ wget  https://arch ...

  5. Spring boot -环境搭建 ,初步接触(1)

    1. Eclipse 创建 maven project  项目目录如下: 2. pom.xml  配置文件 <project xmlns="http://maven.apache.or ...

  6. Spring Boot 初学避免犯不必要的错误

    创建项目时的目录问题: 新包体(例如controller)必须和启动文件 DemoApplication.java 在同一级目录下,如下 spring boot 初步使用创建新的项目:https:// ...

  7. Spring Boot(一):初步认识

    简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置 ...

  8. Spring Boot(一) 初步理解Spring Boot

    一.Spring Boot所解决的问题 Java开发十分笨重:繁多的配置.低下的开发效率.复杂的部署流程以头疼的第三方技术集成. Spring Boot的理念:习惯优于配置——项目中存在大量的配置,此 ...

  9. Spring Boot Servlet

    上一篇我们对如何创建Controller 来响应JSON 以及如何显示数据到页面中,已经有了初步的了解. Web开发使用 Controller 基本上可以完成大部分需求,但是我们还可能会用到 Serv ...

随机推荐

  1. css3正方体效果

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 【笔记】LR响应时间

    事务:是指在客户端做一种或多种的业务所需要的操作集. 事务响应时间:是通过记录用户请求的开始时间和服务器返回内容到客户时间的差值来计算用户响应时间. 响应时间是服务器返回和用户请求之间的时间差,那么得 ...

  3. Java review-basic6

    1. Weak references: In computer programming, a weak reference is a reference that does not protect t ...

  4. Pycharm如何在控制台输出窗口中使用Python解释器

    打开菜单栏run->edit configurations,把下图中的复选框选中就可以了.

  5. GIT → 02:Git和Svn比较

    2.1 SVN介绍 2.1.1 SVN简介 SVN 属于集中式版本管理控制系统,服务器中保存了所有文件的不同版本,而协同工作人员通过连接svn服务器,提取出最新的文件,获取提交更新.Subversio ...

  6. 解决github下载慢的终极方法

    直接用ssr代理,使用全局代理. 下载墙外的软件,都可以,比如 GithubDsktop

  7. 学习Python笔记---if 语句

    条件测试 每条if语句的核心都是一个值为True或False的表达式,这种表达式被称为条件测试.Python根据条件测试的值True还是False来决定是否执行if语句中的代码.如果条件测试的值为Tr ...

  8. SELECT (@i :=@i + 1)生成序列号

    转载自https://blog.csdn.net/qq_27922171/article/details/86477544 同类别自动生成序列号:https://bbs.csdn.net/topics ...

  9. day18 12.丢失更新介绍与悲观锁

    共享锁在一条记录上是可以加多个的,共享嘛.排它锁的意思是指这条记录上如果有任何其他的锁我排它锁是加不上的,有了排它锁其他锁也是加不上的,唯一的.比如说现在我的记录上没锁,加了排它锁其他人使用不了,我这 ...

  10. config.js配置页面中的样式和图片路径

    这个文章用在什么地方,我先说一下,上周啊,我接到一个任务.因为公司业务要对接不同的银行,例如在工行下颜色是红色的,在其他银行下默认为蓝色,所以在页面一致的情况下,保证页面中的按钮和ICON是可以配置的 ...