返回json字符串
1.@ResponseBody会将对象转为Json字符串返回给前端
@Controller
public class CarNumbersController {
@RequestMapping("/duixiang")
@ResponseBody
public User hello() {
User user = new User();
user.setUser_account("1111");
return user;
}
返回字符串
@Controller
public class CarNumbersController {
/**
* 获取车牌列表x
*
* @return
*/
@RequestMapping("/wenzi")
@ResponseBody
public String GetCarMessages() {
return "Hello Spring Boot!";
} }
跳转jsp页面
A.pom中添加
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
B.application.yml 中添加
spring:
mvc:
view:
# 页面默认前缀目录
prefix: /WEB-INF/jsp/
# 响应页面默认后缀
suffix: .jsp
C.添加文件夹
D.跳转
@RequestMapping("/yemian")
public String Login() {
return "login";
}
打印SQL语句到输出框
application.yml 中添加
logImpl: org.apache.ibatis.logging.stdout.StdOutImpl
mybatis:
configuration:
logImpl: org.apache.ibatis.logging.stdout.StdOutImpl
#mapper文件路径
mapper-locations: classpath:mapper/*.xml
#实体对象映射包路径
type-aliases-package: com.juli.po
热部署
1.让src/main/java 下的所有包下的类更改后不用重启,热运行
A.application.yml 中添加
#热部署生效
spring.devtools.restart.enabled: true
#设置重启的目录
spring.devtools.restart.additional-paths: src/main/java
#classpath目录下的WEB-INF文件夹内容修改不重启
spring.devtools.restart.exclude: WEB-INF/**
B.pom中添加
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
多环境配置
A.新建一个总的yml,application.yml
spring:
profiles:
#生产环境 prod 开发环境dev
active: pro
B.新建 开发环境的配置 application-dev.yml
server:
port: 9500
mybatis:
#mapper文件路径
mapper-locations: classpath:mapper/*.xml
#实体对象映射包路径
type-aliases-package: com.juli.po
spring:
application:
#服务名称信息
name: juli-gateway-jiangsu
datasource:
# 当前数据源操作类型
type: com.alibaba.druid.pool.DruidDataSource
# mysql驱动包
driver-class-name: com.mysql.jdbc.Driver
# 数据库名称
#测试地址
url: jdbc:mysql://127.0.0.1:3306/smarttrafficdm
#正式地址
# url: jdbc:mysql://172.18.110.10:3306/smarttrafficdm
# 数据库用户名
username: root
# 数据库密码 正式地址密码是root 测试的为空
password:
dbcp2:
# 数据库连接池的最小维持连接数
min-idle: 5
# 初始化连接数
initial-size: 5
# 最大连接数
max-total: 5
# 等待连接获取的最大超时时间
max-wait-millis: 200
logging:
config: classpath:logback-dev.xml
C.新建 生产环境的配置 application-pro.yml
server:
port: 9600
mybatis:
#mapper文件路径
mapper-locations: classpath:mapper/*.xml
#实体对象映射包路径
type-aliases-package: com.juli.po
spring:
application:
#服务名称信息
name: juli-gateway-jiangsu
datasource:
# 当前数据源操作类型
type: com.alibaba.druid.pool.DruidDataSource
# mysql驱动包
driver-class-name: com.mysql.jdbc.Driver
# 数据库名称
#测试地址
# url: jdbc:mysql://127.0.0.1:3306/smarttrafficdm
#正式地址
url: jdbc:mysql://172.18.110.10:3306/smarttrafficdm
# 数据库用户名
username: root
# 数据库密码 正式地址密码是root 测试的为空
password: root
dbcp2:
# 数据库连接池的最小维持连接数
min-idle: 5
# 初始化连接数
initial-size: 5
# 最大连接数
max-total: 5
# 等待连接获取的最大超时时间
max-wait-millis: 200
logging:
config: classpath:logback-pro.xml
logback日志管理
logback-dev.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 /java/logs D:/java/logs-->
<property name="log.path" value="D:/logs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.juli" level="info" />
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" />
<!---->
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>
B.logback-pro.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 日志存放路径 /java/logs D:/java/logs-->
<property name="log.path" value="/usr/tomcat8/springbootlogs" />
<!-- 日志输出格式 -->
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统日志输出 -->
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-info.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-info.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>INFO</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-error.log</file>
<!-- 循环政策:基于时间创建日志文件 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志文件名格式 -->
<fileNamePattern>${log.path}/sys-error.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<!-- 过滤的级别 -->
<level>ERROR</level>
<!-- 匹配时的操作:接收(记录) -->
<onMatch>ACCEPT</onMatch>
<!-- 不匹配时的操作:拒绝(不记录) -->
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 用户访问日志输出 -->
<appender name="sys-user" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/sys-user.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 按天回滚 daily -->
<fileNamePattern>${log.path}/sys-user.%d{yyyy-MM-dd}.log</fileNamePattern>
<!-- 日志最大的历史 60天 -->
<maxHistory>60</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern>
</encoder>
</appender>
<!-- 系统模块日志级别控制 -->
<logger name="com.juli" level="info" />
<!-- Spring日志级别控制 -->
<logger name="org.springframework" level="warn" />
<!---->
<root level="info">
<appender-ref ref="console" />
</root>
<!--系统操作日志-->
<root level="info">
<appender-ref ref="file_info" />
<appender-ref ref="file_error" />
</root>
<!--系统用户操作日志-->
<logger name="sys-user" level="info">
<appender-ref ref="sys-user"/>
</logger>
</configuration>