springBootTemplate
springBootTemplate copied to clipboard
SpringBoot项目模版
SpringBootTemplate
ç®ä»
éçæ¡æ¶ä½¿ç¨çä¸æçæ´æ°ï¼åé¢ä½¿ç¨SpringBootä¼å¤ï¼è¿è¾¹åå¤æå»ºä¸ä¸ªSpringBoot项ç®ä½¿ç¨ç模çã æè°æ¨¡çï¼åä¹å䏿 ·ï¼å°±æ¯ä¸ä¸ªæç®åç项ç®ï¼å 嫿ææç®åç空å®ç°ã
模çç®ç
- 1ãä¸çæSpringBoot项ç®ç人ï¼å¨å¦ä¹ äºSpringBootçåºç¡é¨åä¹åï¼è½æ ¹æ®è¿ä¸ªæ¨¡çå¿«é䏿
- 2ãå¼åå¢éç项ç®ç»æå使ç¨è£ å¤çç»ä¸ï¼å æ¬ç®å½ç»æï¼ä½¿ç¨çä¸äºç»ä»¶ä¸é¢çç»ä¸
- 3ã䏿³éå¤é è½®åï¼æ¯æ¬¡æ°å»ºä¸ä¸ªé¡¹ç®å¾éº»ç¦
ç®å½è¯´æ
src/main/java/
åæ¾java代ç ï¼å ¶ä¸SpringBootTemplateApplication为SpringBootå¯å¨ç±»
src/main/resources/
application.yml å
¨å±é
ç½®æä»¶
application-data.yml æ°æ®æºç¸å
³é
ç½®æä»¶
application-mvc.yml 页é¢mvcç¸å
³é
ç½®æä»¶
application-config.yml éè¦å¼å
¥çä¸äºå
¨å±é
ç½®
application-dev.yml å¼åç¯å¢é
ç½®
application-prod.yml ç产ç¯å¢é
ç½®
src/main/resources/static
åæ¾åç§éæèµæºæä»¶ï¼å¦cssï¼jsï¼imageç
src/main/resources/templates
åæ¾ä½¿ç¨ç页颿件ï¼åç§htmlç
src/main/resources/mapper
åæ¾mybatisçsqlè¯å¥xmlæä»¶
æ°æ®ç»æ
è¡¨ç»æå®ä¹åæ³å¦ä¸
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user_tab
-- ----------------------------
DROP TABLE IF EXISTS `user_tab`;
CREATE TABLE `user_tab` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`val` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=latin1;
SET FOREIGN_KEY_CHECKS = 1;
注æäºé¡¹
- 项ç®å¯å¨åæ¬æºéè¦å¯å¨redisï¼å¦åä¼åºç°ERRROR
- æµè¯å°å为http://127.0.0.1:8080/testï¼æµè¯æ¹æ³å ¨é¨å¨UserControllerä¸
RedisUtil
æ°Redisæä½å·¥å ·ç±»,æ´é²å¦ä¸æä½æ¹æ³
| æ¹æ³å | å ¥å | åºå |
|---|---|---|
| setExpireTime | String key, long timeout | boolean |
| delete | String key | void |
| hasKey | String key | boolean |
| set | String key, Object value | void |
| set | String key, Object value, Long expireTime | void |
| get | String key | Object |
CacheConfigç®åç¼å
1ãå¯å¨ç±»ä¸éè¦å @EnableCaching注解
2ãå¨éè¦æ§è¡ç¼åçç±»ä¸é¢åä¸ç¼ååç¼åç§°
@CacheConfig(cacheNames="user")
3ã卿¥è¯¢æ¹æ³ä¸ä½¿ç¨@Cacheable(key = "'list'")é
ç½®é®çåç§°
4ãå¨ä¿®æ¹æ¹æ³ä¸ä½¿ç¨@CachePut(key = "'list'")é
ç½®é®çåç§°
http://127.0.0.1:8080/cache/user/list
http://127.0.0.1:8080/cache/user/add
http://127.0.0.1:8080/cache/user/delete
FileHandleUtil
æä»¶ä¸ä¼ å·¥å ·ç±»ï¼ä¸ä¼ å°ä¸jarå å级çstaticç®å½ä¸ï¼å¼åç¯å¢åæå¡å¨ç¯å¢åå¯
æ¹æ³ï¼upload
å
¥åï¼
inputStream æä»¶æµ
path æä»¶è·¯å¾ï¼å¦ï¼image/
filename æä»¶åï¼å¦ï¼test.jpg
åºåï¼
æåæä»¶åæ¾è·¯å¾ä¸ºï¼static/upload/image/test.jpg
æä»¶è®¿é®è·¯å¾ä¸ºï¼http://127.0.0.1:8080/upload/image/test.jpg
è¯¥æ¹æ³è¿åå¼ä¸ºï¼/upload/image/test.jpg
æ¹æ³ï¼delete
å
¥åï¼
pathï¼ æä»¶è·¯å¾ï¼æ¯uploadæ¹æ³è¿åçè·¯å¾å¦ï¼/upload/image/test.jpg
å ³èé ç½®ï¼
spring:
# éæèµæºè·¯å¾
resources:
static-locations: classpath:static/,file:static/
Dockerfileä½¿ç¨æ¥éª¤
1ã使ç¨gradleçbootRepackageè¿è¡æå
2ãDockerfileç®å½ä¸ä½¿ç¨å½ä»¤ï¼docker build -t springboot:v1.0 .
3ãå¯å¨æ¬å°redisï¼å¹¶ä¿®æ¹application-dev.ymlä¸redisçIPå°å为宿主æºçIPå°åå¦ï¼192.168.1.111ï¼mysqlçIPå°ååç
4ã使ç¨å½ä»¤ï¼docker run --name springbootTemplate -d -p 8080:8080 springboot:v1.0
5ãç´æ¥è®¿é®æµè¯å°åå³å¯
注æäºé¡¹
Dockerfileä¸çAPP_NAME对åºjar.baseName-jar.versionDockerfileä¸çAPP_PORT&EXPOSEæ ¹æ®é¡¹ç®æ åµå¡«å
å¿«éå¯å¨å忢åºç¨çèæ¬
app.shèæ¬ä¸ºå¿«éå¯å¨åºç¨åå ³éåºç¨çèæ¬ï¼ä½¿ç¨æ¹æ³å¦ä¸ï¼
é¦å ï¼å°ä½ éè¦åå¸çjarå ï¼å嫿ä¸è¿°å 容çèæ¬app.shï¼ä¸ä¼ è³linuxæå¡å¨ï¼æ³¨æä¸¤è å¿ é¡»å¤äºåä¸ç®å½ï¼å¹¶ç»ä¸app.shç¸åºæ§è¡æéï¼chmod 777 app.sh
ç¶åå°±å¯ä»¥æ§è¡èæ¬ï¼å½ä»¤å¦ä¸
| å½ä»¤ | ä½ç¨ |
|---|---|
| ./app.sh start | å¯å¨åºç¨ |
| ./app.sh stop | å ³éåºç¨ |
| ./app.sh restart | éå¯åºç¨ |
| ./app.sh status | æ¥çåºç¨ç¶æ |
èæ¬ä¸å¯ä»¥ä¿®æ¹çå°æ¹ï¼
nohup java -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -Xms512M -Xmx4G -jar $appName > /dev/null 2>&1 &
è¿æ¯æç»jarçå¯å¨å½ä»¤ï¼å¨è¿éä½ éè¦å¯¹gcãXmsãXmxçéå¯¹ä½ æºå¨çå®é
æ
åµä¿®æ¹ï¼è¿å¯ä»¥æ·»å ä½ æéè¦çå¯å¨åæ°çã
for i in {5..1}
è¿éæ¯è®¾ç½®restartçæ¶åçå¾
çæ¶é´ï¼å 为æç项ç®å¨5ç§ä¹å
å¯è½æ²¡æåæ³æ£å¸¸åæ¢ï¼æä»¥å¯ä»¥è°æ´ä¸º10ç§ï¼ä¿è¯åºç¨ç¡®å®æ£å¸¸åæ¢ååå¯å¨
- èæ¬è³æ´æ°1.0.1
-
å¯å¨åæ¢ä¼å
./app.sh start é»è®¤ä¼å¯å¨å½åç®å½ä¸æåæ¾å ¥çjarå ï¼stopåç -
å¯å¨åæ¢åæ°ä¼å
./app.sh start springBootTemplate-0.0.1-SNAPSHOT.jaråé¢å¯ä»¥è·ä¸é¡¹ç®åç§°ï¼å¯å¨æåæ¢æå®çé¡¹ç® -
é坿令ä¼åï¼æ¹ä¾¿éæ°å叿å¡
./app.sh restart妿å½åç®å½ä¸æä¸¤ä¸ªjarå ï¼ä¼åæ¢åä¸ä¸ªæ¾å ¥çjarå¹¶å¤ä»½ï¼ç¶åå¯å¨ææ°æ¾å ¥çjar
å¦:å½åç®å½æ åµä¸º
app1.jar æ¾å ¥æä»¶å¤¹æ¶é´ä¸º12:00
app2.jar æ¾å ¥æä»¶å¤¹æ¶é´ä¸º13:00
app.sh
æ§è¡é坿令åï¼å 忢app1.jarï¼ç¶åå¤ä»½app1.jarï¼ç¶åå¯å¨app2.jar