一、前言

寫程式碼就和戀愛一樣,有反饋就要趁熱打鐵,搞完了專案搭建,接下來就來搞搞專案配置。

二、IDEA設定

1、編碼配置

這裡所說的就是程式碼的編碼格式,你可以不設定,但是可能要面臨的是,很多未知的麻煩,比如亂碼是很坑的呀(真的誰遇見,誰知道,噁心的一批)。

單擊 File -> Settings, 搜尋框輸入 encoding ,編碼格式都設定成UTF-8

2、JDK配置

此處略...

3、Maven配置

單擊 File -> Settings, 搜尋框輸入 maven ,選擇自己的私服倉庫settings.xml

settings.xml 示例如下:

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
  5. <localRepository>C:\Users\ASUS\.m2\repository</localRepository>
  6. <pluginGroups>
  7. </pluginGroups>
  8. <proxies>
  9. </proxies>
  10. <servers>
  11. </servers>
  12. <mirrors>
  13. <mirror>
  14. <id>alimaven</id>
  15. <mirrorOf>central</mirrorOf>
  16. <name>aliyun maven</name>
  17. <url>http://maven.aliyun.com/nexus/content/repositories/central</url>
  18. </mirror>
  19. <mirror>
  20. <id>alimaven</id>
  21. <name>aliyun maven</name>
  22. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  23. <mirrorOf>central</mirrorOf>
  24. </mirror>
  25. <mirror>
  26. <id>central</id>
  27. <name>Maven Repository Switchboard</name>
  28. <url>http://repo1.maven.org/maven2</url>
  29. <mirrorOf>central</mirrorOf>
  30. </mirror>
  31. <mirror>
  32. <id>repo2</id>
  33. <mirrorOf>central</mirrorOf>
  34. <name>Human Readable Name for this Mirror.</name>
  35. <url>http://repo2.maven.org/maven2</url>
  36. </mirror>
  37. <mirror>
  38. <id>ibiblio</id>
  39. <mirrorOf>central</mirrorOf>
  40. <name>Human Readable Name for this Mirror.</name>
  41. <url>http://mirrors.ibiblio.org/pub/mirrors/maven2</url>
  42. </mirror>
  43. <mirror>
  44. <id>jboss-public-repository-group</id>
  45. <mirrorOf>central</mirrorOf>
  46. <name>JBoss Public Repository Group</name>
  47. <url>http://repository.jboss.org/nexus/content/groups/public</url>
  48. </mirror>
  49. <mirror>
  50. <id>google-maven-central</id>
  51. <name>Google Maven Central</name>
  52. <url>https://maven-central.storage.googleapis.com
  53. </url>
  54. <mirrorOf>central</mirrorOf>
  55. </mirror>
  56. <!-- 中央倉庫在中國的映象 -->
  57. <mirror>
  58. <id>maven.net.cn</id>
  59. <name>one of the central mirrors in china</name>
  60. <url>http://maven.net.cn/content/groups/public</url>
  61. <mirrorOf>central</mirrorOf>
  62. </mirror>
  63. </mirrors>
  64. <profiles>
  65. <profile>
  66. <id>jdk-1.8</id>
  67. <activation>
  68. <activeByDefault>true</activeByDefault>
  69. <jdk>1.8</jdk>
  70. </activation>
  71. <properties>
  72. <maven.compiler.source>1.8</maven.compiler.source>
  73. <maven.compiler.target>1.8</maven.compiler.target>
  74. <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
  75. </properties>
  76. </profile>
  77. <profile>
  78. <id>repository_set</id>
  79. <repositories>
  80. <repository>
  81. <snapshots>
  82. <enabled>false</enabled>
  83. </snapshots>
  84. <id>public</id>
  85. <name>Public Repository</name>
  86. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  87. </repository>
  88. </repositories>
  89. <pluginRepositories>
  90. <pluginRepository>
  91. <releases>
  92. <updatePolicy>never</updatePolicy>
  93. </releases>
  94. <snapshots>
  95. <enabled>false</enabled>
  96. </snapshots>
  97. <id>public</id>
  98. <name>Public Repository</name>
  99. <url>http://maven.aliyun.com/nexus/content/groups/public</url>
  100. </pluginRepository>
  101. </pluginRepositories>
  102. </profile>
  103. </profiles>
  104. </settings>

4、Git配置

此處略...

5、修改埠

main/resources/application.properties修改埠

server.port=8088

此時啟動訪問localhost:8088/hello 就會看到

Hello Spring Boot!

使用yml檔案替換 properties 檔案

  • 在main/resources 檔案下新建一個application.yml 檔案
  • 在yml檔案中修改埠
  1. server:
  2. port: 8099
  • 刪除掉application.properties檔案,只保留yml檔案
  • 執行程式,此時訪問8099埠即可

三、啟動日誌優化

1、自定義啟動圖案

在resources下新建banner.txt

線上生成文字圖案:http://patorjk.com/software/taag

2、logback-spring.xml示例

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <configuration>
  3. <!-- 修改一下路徑-->
  4. <property name="PATH" value="./log"></property>
  5. <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
  6. <encoder>
  7. <!-- <Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-5level) %blue(%-50logger{50}:%-4line) %thread %msg%n</Pattern>-->
  8. <Pattern>%d{ss.SSS} %highlight(%-5level) %blue(%-30logger{30}:%-4line) %thread %msg%n</Pattern>
  9. </encoder>
  10. </appender>
  11. <appender name="TRACE_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  12. <file>${PATH}/trace.log</file>
  13. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  14. <FileNamePattern>${PATH}/trace.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  15. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  16. <maxFileSize>10MB</maxFileSize>
  17. </timeBasedFileNamingAndTriggeringPolicy>
  18. </rollingPolicy>
  19. <layout>
  20. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern>
  21. </layout>
  22. </appender>
  23. <appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  24. <file>${PATH}/error.log</file>
  25. <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
  26. <FileNamePattern>${PATH}/error.%d{yyyy-MM-dd}.%i.log</FileNamePattern>
  27. <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
  28. <maxFileSize>10MB</maxFileSize>
  29. </timeBasedFileNamingAndTriggeringPolicy>
  30. </rollingPolicy>
  31. <layout>
  32. <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level %-50logger{50}:%-4line %green(%-18X{LOG_ID}) %msg%n</pattern>
  33. </layout>
  34. <filter class="ch.qos.logback.classic.filter.LevelFilter">
  35. <level>ERROR</level>
  36. <onMatch>ACCEPT</onMatch>
  37. <onMismatch>DENY</onMismatch>
  38. </filter>
  39. </appender>
  40. <root level="ERROR">
  41. <appender-ref ref="ERROR_FILE" />
  42. </root>
  43. <root level="TRACE">
  44. <appender-ref ref="TRACE_FILE" />
  45. </root>
  46. <root level="INFO">
  47. <appender-ref ref="STDOUT" />
  48. </root>
  49. </configuration>

3、啟動類優化

config層用於放配置類,@ComponentScan:配置要交給Spring管理的類路徑,SpringBootApplication註解包含了@ComponentScan註解。

注意: 如果啟動類和其它類所在的包沒有包含關係的話,需要加@ComponentScan註解,掃描的路徑不要太通用,比如掃描"com.xx.xx",而不是"com"(會把第三方jar裡的類也掃描出來)。

示例程式碼如下:

  1. import org.slf4j.Logger;
  2. import org.slf4j.LoggerFactory;
  3. import org.springframework.boot.SpringApplication;
  4. import org.springframework.boot.autoconfigure.SpringBootApplication;
  5. import org.springframework.context.annotation.ComponentScan;
  6. @ComponentScan("com.xx.xx")
  7. @SpringBootApplication
  8. public class XXApplication {
  9. private static final Logger logger = LoggerFactory.getLogger(XXWikiApplication.class);
  10. public static void main(String[] args) {
  11. SpringApplication.run(WikiApplication.class, args);
  12. logger.info("服務啟動了!!");
  13. }
  14. }

4、執行效果

四、最後

到此,關於專案搭建的配置部分搞完,有興趣的同學可以自己動手嘗試。