1.springboot返回json對象
@Controller
public class CarNumbersController {
@RequestMapping("/duixiang")
@ResponseBody
public User hello() {
User user = new User();
user.setUser_account("1111");
return user;
}
2.springboot 返回字符串
@Controller
public class CarNumbersController {
/**
* 獲取車牌列表x
*
* @return
*/
@RequestMapping("/wenzi")
@ResponseBody
public String GetCarMessages() {
return "Hello Spring Boot!";
} }
3.跳轉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";
}
4.打印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
5.熱部署
讓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>
6.分環境配置數據庫,日誌等配置
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
D.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>
E.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>