关于设计方面的网站,wordpress 文件列表,赣州工作室,行业关键词大家好#xff0c;我是烤鸭#xff1a;这是一篇关于springboot多环境加载yml和logback配置文件。环境#xff1a;开发工具 idea(推荐)/eclipse(对yml支持不好)jdk 1.8springboot 1.5.6.RELEASE
1. yml和logback文件1.1 结构,如图所示#xff1a;1.2 application.yml (默…大家好我是烤鸭这是一篇关于springboot多环境加载yml和logback配置文件。环境开发工具 idea(推荐)/eclipse(对yml支持不好)jdk 1.8springboot 1.5.6.RELEASE
1. yml和logback文件1.1 结构,如图所示1.2 application.yml (默认加载的初始化文件)#开发环境配置
spring:profiles:
# active: devactive: profiles.active
1.3 application-dev/test/pro.yml logging:level:org.springframework.web: DEBUG,CONSOLEconfig: classpath:logback-dev.xml#查看springboot开启了哪些配置
debug: true#server:
# port: 8131 #配置程序端口,默认为8080
# session-timeout: 5000 #用户会话session过期时间,以秒为单位
# context-path: #配置访问路径,默认为/spring:datasource:name: devurl: jdbc:mysql://localhost:3306/jeesite?useUnicodetruecharacterEncodingutf-8allowMultiQueriestrueusername: rootpassword: root# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSourcedriver-class-name: com.mysql.jdbc.Driverfilters: statmaxActive: 20initialSize: 1maxWait: 60000minIdle: 1timeBetweenEvictionRunsMillis: 60000minEvictableIdleTimeMillis: 300000validationQuery: select xtestWhileIdle: truetestOnBorrow: falsetestOnReturn: falsepoolPreparedStatements: truemaxOpenPreparedStatements: 20mybatis:mapper-locations: classpath:com.test.test.mapper/*.xmltype-aliases-package: com.test.test.pojojedis :pool :host : localhostport : 9001password: adminconfig :maxTotal: 100maxIdle: 10maxWaitMillis : 100000
#pagehelper分页插件
pagehelper:helperDialect: mysqlreasonable: truesupportMethodsArguments: trueparams: countcountSql
thread:pool:corePoolSize: 10maxPoolSize: 15queueCapacity: 20主要是集成了mysqlmybatisredislogback。配置了线程池参数。1.4 logback-dev.xml
?xml version1.0 encodingUTF-8?
configuration debugtrue!-- 项目名称 --property namePROJECT_NAME valuebq_interface /!--定义日志文件的存储地址 勿在 LogBack 的配置中使用相对路径--property nameLOG_HOME value/opt/logs/bq_interface /!-- 控制台输出 --appender nameCONSOLE classch.qos.logback.core.ConsoleAppender!--withJansitrue/withJansi--encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %highlight([%-5level] %logger{50} - %msg%n)/patterncharsetUTF-8/charset!-- charsetGBK/charset --/encoder/appender!-- 按照每天生成日志文件 --appender nameSYSTEM_FILE classch.qos.logback.core.rolling.RollingFileAppender!-- 过滤器只打印ERROR级别的日志 --rollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy!--日志文件输出的文件名--FileNamePattern${LOG_HOME}/${PROJECT_NAME}.system-dev.%d{yyyy-MM-dd}.%i.log/FileNamePattern!--日志文件保留天数--MaxHistory15/MaxHistory!--日志文件最大的大小--MaxFileSize10MB/MaxFileSize/rollingPolicyencoder classch.qos.logback.classic.encoder.PatternLayoutEncoder!--格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符--pattern[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n/patterncharsetUTF-8/charset/encoder/appenderlogger namesystem_error additivitytrueappender-ref refSYSTEM_FILE//logger!-- 自己打印的日志文件用于记录重要日志信息 --!-- appender nameMY_INFO_FILE classch.qos.logback.core.rolling.RollingFileAppender --!-- 过滤器只打印ERROR级别的日志 --!-- filter classch.qos.logback.classic.filter.LevelFilter --!-- levelINFO/level --!-- onMatchACCEPT/onMatch --!-- onMismatchDENY/onMismatch --!-- /filter --!-- rollingPolicy classch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy --!-- 日志文件输出的文件名 --!-- FileNamePattern${LOG_HOME}/${PROJECT_NAME}.my_info.%d{yyyy-MM-dd}.%i.log/FileNamePattern --!-- 日志文件保留天数 --!-- MaxHistory15/MaxHistory --!-- 日志文件最大的大小 --!-- MaxFileSize10MB/MaxFileSize --!-- /rollingPolicy --!-- encoder classch.qos.logback.classic.encoder.PatternLayoutEncoder --!-- 格式化输出%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度%msg日志消息%n是换行符 --!-- pattern[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] [%-5level] %logger{50} - %msg%n/pattern --!-- charsetUTF-8/charset --!-- /encoder --!-- /appender --!-- logger namemy_info additivitytrue --!-- appender-ref refMY_INFO_FILE/ --!-- /logger --!-- 设置SpringHibernate日志输出级别 --logger nameorg.springframework levelWARN /logger nameorg.mybatis levelWARN /logger namecom.ibatis levelDEBUG /logger namecom.ibatis.common.jdbc.SimpleDataSource levelDEBUG /logger namecom.ibatis.common.jdbc.ScriptRunner levelDEBUG /logger namecom.ibatis.sqlmap.engine.impl.SqlMapClientDelegate levelDEBUG /logger namejava.sql.Connection levelDEBUG /logger namejava.sql.Statement levelDEBUG /logger namejava.sql.PreparedStatement levelDEBUG /logger namecom.ruidou.baoqian.mapper levelDEBUG /!-- 开发环境下的日志配置 --root levelINFO,DEBUGappender-ref refCONSOLE /appender-ref refSYSTEM_FILE //root
/configuration2. pom文件
?xml version1.0 encodingUTF-8?
project xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://maven.apache.org/POM/4.0.0xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersionparentgroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-parent/artifactIdversion1.5.6.RELEASE/version/parentgroupIdcom.test.test/groupIdversion1.0.0-SNAPSHOT/versionartifactIdtest_interface/artifactIdpackagingwar/packagingnametest_interface/namedescriptiontest项目/descriptionpropertiesmaven.compiler.source1.8/maven.compiler.sourcemaven.compiler.target1.8/maven.compiler.targetmaven.compiler.encodingUTF-8/maven.compiler.encodingproject.build.sourceEncodingUTF-8/project.build.sourceEncodingproject.build.localeszh_CN/project.build.locales/propertiesdependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-jdbc/artifactId/dependency!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl --dependencygroupIdorg.codehaus.jackson/groupIdartifactIdjackson-mapper-asl/artifactIdversion1.9.13/version/dependency!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl --dependencygroupIdorg.codehaus.jackson/groupIdartifactIdjackson-core-asl/artifactIdversion1.9.13/version/dependency!-- https://mvnrepository.com/artifact/org.jsoup/jsoup --dependencygroupIdorg.jsoup/groupIdartifactIdjsoup/artifactIdversion1.11.2/version/dependency!-- https://mvnrepository.com/artifact/org.projectlombok/lombok --dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversion1.16.20/versionscopeprovided/scope/dependencydependencygroupIdorg.dom4j/groupIdartifactIddom4j/artifactIdversion2.1.0/version/dependency!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --dependencygroupIdcom.alibaba/groupIdartifactIdfastjson/artifactIdversion1.2.45/version/dependency!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient --dependencygroupIdorg.apache.httpcomponents/groupIdartifactIdhttpclient/artifactIdversion4.5.4/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdexclusionsexclusiongroupIdcom.fasterxml.jackson.core/groupIdartifactIdjackson-databind/artifactId/exclusion/exclusions/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-thymeleaf/artifactId/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.35/version/dependency!-- Testing Dependencies --dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-test/artifactIdscopeprovided/scope/dependencydependencygroupIdredis.clients/groupIdartifactIdjedis/artifactIdversion2.9.0/version/dependencydependencygroupIdcommons-beanutils/groupIdartifactIdcommons-beanutils/artifactIdversion1.8.3/version/dependency!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --dependencygroupIdorg.apache.commons/groupIdartifactIdcommons-lang3/artifactIdversion3.7/version/dependency!-- alibaba的druid数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid/artifactIdversion1.0.11/version/dependency!-- 分页插件 --dependencygroupIdcom.github.pagehelper/groupIdartifactIdpagehelper-spring-boot-starter/artifactIdversion1.1.2/version/dependency!-- alibaba的druid数据库连接池 --dependencygroupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.1.0/version/dependencydependencygroupIdorg.aspectj/groupIdartifactIdaspectjweaver/artifactIdversion1.8.10/version/dependency/dependenciesprofilesprofile!--本地开发环境--iddev/idpropertiesprofiles.activedev/profiles.active/propertiesactivationactiveByDefaulttrue/activeByDefault/activation/profileprofile!--测试环境--idtest/idpropertiesprofiles.activetest/profiles.active/properties/profileprofile!--生产环境--idpro/idpropertiesprofiles.activepro/profiles.active/properties/profile/profilesbuildfinalNamemyTest/finalName !-- 指定package生成的文件名为my-spring-boot.jar --filtersfiltersrc/main/resources/application-${profiles.active}.yml/filterfiltersrc/main/resources/logback-${profiles.active}.xml/filter/filters
!-- 替换${key}内容 --resourcesresourcefilteringtrue/filtering
!-- 要到达最底层目录 --directorysrc/main/resources//directory/resource/resourcespluginsplugingroupIdorg.springframework.boot/groupIdartifactIdspring-boot-maven-plugin/artifactId/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-compiler-plugin/artifactIdconfigurationsource1.8/sourcetarget1.8/target/configuration/pluginplugingroupIdorg.apache.maven.plugins/groupIdartifactIdmaven-jar-plugin/artifactIdconfigurationarchivemanifestaddClasspathtrue/addClasspathuseUniqueVersionsfalse/useUniqueVersionsclasspathPrefixlib//classpathPrefixmainClasscom.test.test.TestMainApplication/mainClass/manifestmanifestEntriesversion${project.version}/version/manifestEntries/archive/configuration/plugin/plugins/build
/project
中间有很多jar包不需要的自己删掉吧。
3. main方法3.1 TestMainApplication:
/*** author Binary Wang(https://githpaub.com/binarywang)*/
SpringBootApplication
public class TestMainApplication {public static void main(String[] args) {SpringApplication.run(RootConfiguration.class, args);}
}3.2 RootConfiguration:
package com.test.test.config;import com.test.test.constants.IDBConstant;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.embedded.ConfigurableEmbeddedServletContainer;
import org.springframework.boot.context.embedded.EmbeddedServletContainerCustomizer;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ComponentScan.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.FilterType;
import org.springframework.stereotype.Controller;import javax.annotation.PostConstruct;
import java.util.concurrent.Executors;Configuration
EnableAutoConfiguration
SpringBootApplication
ComponentScan(value com.test.test, excludeFilters { Filter(Controller.class),Filter(type FilterType.ASSIGNABLE_TYPE, value { RootConfiguration.class }) })
MapperScan({com.test.test.dao})
public class RootConfiguration extends SpringBootServletInitializer implements EmbeddedServletContainerCustomizer {//配置tomcat启动端口号Overridepublic void customize(ConfigurableEmbeddedServletContainer container) {container.setPort(8131);container.setSessionTimeout(30);}Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(RootConfiguration.class);}PostConstructpublic void postConstruct() {IDBConstant.threadPool Executors.newFixedThreadPool(20);}}
4. maven打包
clean package -Ptest -U这样生成的war包就加载指定的yml和logback文件了。-Ptest指的是加载profiles.activetest的配置文件。
之前一直想打成jar包启动
nohup java -jar ./myTest-1.0-SNAPSHOT.jar -profiles.activepro
无奈还是无法加载指定的配置文件。
没办法就打成了war包放到tomcat下了。5. jenkins/hudson 打包脚本
cd /opt/source/test_interface
rm -rf ./*
cp -rf /root/.hudson/jobs/test_interface/workspace/target/myTest.war ./
kill -9 ps aux | grep myTest| grep -v grep | awk {print $2}
unzip -o myTest.war
cd /opt/tomcat/tomcat_test_interface/bin/
chmod x *.sh
sh ./startup.sh