WEB 常用配置: application.properties
server.port=80
debug=false
#/ a , b ,c 三个项目 /地址将产生冲突
#一般情况下,小项目通常都是在Tomcat下部署多个webapp,通过上下文来区分
#在集群或者中大型项目中,通常我们一个Tomcat对应一个webapp,然后通过不同的端口来进行区分(8080/8081/8082)
server.servlet.context-path=/myspringboot
#UTF-8只包含了20000+个中文字符,对于生僻字显示不了
spring.http.encoding.charset=UTF-8
#开启thymeleaf缓存,Thymeleaf热部署
#注意这里有大坑,除了设置cache=false外,还要设置
#file->setting->build->complier-> Build Project Auto... 勾选
spring.thymeleaf.cache=false
#Spring MVC中对输入参数的格式化
spring.mvc.date-format=yyyy-MM-dd
#设置JSON 日期序列化输出格式,北京时间相对伦敦有8个小时时差所以使用GMT+8
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss SSS
#日志输出的地址,SpringBoot默认并没有进行文件输出,只在控制台中进行了打印
logging.file=d:/logs/msb.log
#日志级别 debug->info->warn->error
#默认情况下SpringBoot日志级别为info
#如果设置了debug=true的时候,会自动日志会自动降到debug
#ROOT代表默认全局设置
#logging.level.ROOT=INFO
#设置指定包的输出级别
#logging.level.org.springframework=ERROR
#logging.level.org.apache=ERROR
日志配置: logback.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!--定义日志保存的路径-->
<!--1.更改默认的logback.xml为logback-spring.xml
SpringBoot当看到logback-spring.xml文件存在的时候,才会启动日志的环境切换
logback.xml文件没法做到
2. 在需要切换的环境上增加springProfile标签
-->
<springProfile name="dev">
<property name="LOG_HOME" value="d:/logs/dev/" />
</springProfile>
<springProfile name="prd">
<property name="LOG_HOME" value="d:/logs/prd/" />
</springProfile>
<!--定义一个控制台输出器,名为console-->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<!--按pattern指定的格式输出日志,编码为UTF-8-->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{30} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<!--定义一个日滚动(每天生成一份)的日志文件-->
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--按pattern指定的格式输出日志,编码为UTF-8-->
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{30} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 定义保存的文件名 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--%d{yyyy-MM-dd}代表每天生成一个新的日志-->
<fileNamePattern>${LOG_HOME}/mysprintboot_%d{yyyy-MM-dd}.log</fileNamePattern>
<!--日志最多保存90天,也就是90份-->
<maxHistory>90</maxHistory>
</rollingPolicy>
<!-- 在日滚动文件中,强制只保存错误级别以上信息 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 定义日志全局最低输出级别是INFO,同时向控制台和日滚动文件输出 -->
<root level="INFO">
<appender-ref ref="console" />
<appender-ref ref="file" />
</root>
</configuration>
自定义配置:conf.properties
app.name=springboot
app.version=1.0.0
app.description=spring boot test
app.page-size=20
app.show-advert=true
app.website=http://www.yangdianjie.com
@SpringBootApplication
//在入口类启动时加载config.properties
@PropertySource("classpath:config.properties")
MyspringbootApplication {
public static void main(String[] args) {
// SpringApplication.run(MyspringbootApplication.class, args);
SpringApplication app = new SpringApplication(MyspringbootApplication.class);
//关闭Banner
app.setBannerMode(Banner.Mode.OFF);
app.run(args);
}
}
环境切换配置:
application.yml:
spring:
profiles:
active: dev
http:
encoding:
charset: utf-8
application-dev.yml:
#debug=true
debug: false
#server.port=80
#前缀相同的配置项,idea会自动进行归纳
server:
port: 8000
servlet:
context-path: /
thymeleaf:
cache: false
spring:
mvc:
date-format: yyyy-MM-dd
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/test
username: root
password: root
application-prd.yml:
#debug=true
debug: false
#server.port=80
#前缀相同的配置项,idea会自动进行归纳
server:
port: 80
servlet:
context-path: /
#idean对yml有良好支持可自动生成
spring:
thymeleaf:
cache: false
mvc:
date-format: yyyy-MM-dd
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://166.87.93.124:3310/production
username: admin
password: 123!@#$
datasource配置:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/scott?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
#display sql in console
spring.jpa.show-sql=true
#format json
spring.jackson.serialization.indent-output=true
logging.level.root = debug
server.port=80
#数据库类型为mysql
spring.datasource.dbType=mysql
#启动时初始化5个连接
spring.datasource.initialSize=20
#最小空闲连接5个
spring.datasource.minIdle=5
#最大连接数量20
spring.datasource.maxActive=20
#获取连接等待时间60秒,超出报错
spring.datasource.maxWait=60000
#每60秒执行一次连接回收器
spring.datasource.timeBetweenEvictionRunsMillis=60000
#5分钟内没有任何操作的空闲连接会被回收
spring.datasource.minEvictableIdleTimeMillis=300000
#验证连接有效性的SQL
spring.datasource.validationQuery=select 'x'
#空闲时校验,建议开启
spring.datasource.testWhileIdle=true
#使用中是否校验有效性,推荐关闭
spring.datasource.testOnBorrow=false
#归还连接时校验有效性,推荐关闭
spring.datasource.testOnReturn=false
spring.datasource.poolPreparedStatements=false
#设置过滤器,stat用于接收状态,wall用于防止SQL注入,logback则说明使用logback日志输出
spring.datasource.filters=stat,wall,logback
#统计所有数据源状态
spring.datasource.useGlobalDataSourceStat=true
#sql合并统计,与设置慢SQL时间为500毫秒
spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
mybatis 配置:
#Datasource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/scott?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
#mybatis
#Core Config File
#start width /
mybatis.config-location=classpath:/mybatis/mybatis-config.xml
mybatis.mapper-locations=classpath:/mybatis/mapper/*.xml
#show sql
logging.level.com.itlaoqi.springbootmybatis.mapper = debug
#format json
spring.jackson.serialization.indent-output=true
generatorConfig.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!-- 数据库驱动:选择你的本地硬盘上面的数据库驱动包-->
<classPathEntry location="E:\repo\mysql\mysql-connector-java\5.1.47\mysql-connector-java-5.1.47.jar"/>
<context id="DB2Tables" targetRuntime="MyBatis3">
<commentGenerator>
<property name="suppressDate" value="true"/>
<!-- 是否去除自动生成的注释 true:是 : false:否 -->
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--数据库链接URL,用户名、密码 -->
<jdbcConnection driverClass="com.mysql.jdbc.Driver" connectionURL="jdbc:mysql://47.93.149.120:3306/bd_decision_engine" userId="root" password="dl2PA64i">
</jdbcConnection>
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- 生成模型的包名和位置-->
<javaModelGenerator targetPackage="com.jffox.cloud.decision.entity" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
<property name="trimStrings" value="true"/>
</javaModelGenerator>
<!-- 生成映射文件的包名和位置-->
<sqlMapGenerator targetPackage="mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="true"/>
</sqlMapGenerator>
<!-- 生成DAO的包名和位置-->
<javaClientGenerator type="XMLMAPPER" targetPackage="com.jffox.cloud.decision.mapper" targetProject="src/main/java">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- 要生成的表 tableName是数据库中的表名或视图名 domainObjectName是实体类名-->
<table tableName="rule_set" domainObjectName="RuleSet" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<columnOverride column="comment" jdbcType="VARCHAR"></columnOverride>
</table>
</context>
<table tableName="rule_set" domainObjectName="ruleSet" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false">
<columnOverride column="comment" jdbcType="VARCHAR"></columnOverride>
</table>
<table tableName="user_login" domainObjectName="UserLogin" enableCountByExample="false" enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false" selectByExampleQueryId="false"></table>
</context>
</generatorConfiguration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<context id="Mysql" targetRuntime="MyBatis3Simple" defaultModelType="flat">
<property name="javaFileEncoding" value="UTF-8"/>
<!--配置是否使用通用 Mapper 自带的注释扩展,默认 true-->
<!--<property name="useMapperCommentGenerator" value="false"/>-->
<!--通用 Mapper 插件,可以生成带注解的实体类-->
<plugin type="tk.mybatis.mapper.generator.MapperPlugin">
<property name="mappers" value="tk.mybatis.mapper.common.Mapper"/>
<property name="caseSensitive" value="true"/>
<property name="forceAnnotation" value="true"/>
<property name="beginningDelimiter" value="`"/>
<property name="endingDelimiter" value="`"/>
</plugin>
<!--<jdbcConnection driverClass="com.mysql.jdbc.Driver"-->
<!--connectionURL="jdbc:mysql://192.168.55.225:3306/bd_aidp_db"-->
<!--userId="dbp_rw"-->
<!--password="WsvvVuvPHPFyJPcwpN9X">-->
<!--</jdbcConnection>-->
<!--<jdbcConnection driverClass="com.mysql.jdbc.Driver"-->
<!--connectionURL="jdbc:mysql://192.168.55.225:3306/bd_search_engine"-->
<!--userId="dbp_rw"-->
<!--password="WsvvVuvPHPFyJPcwpN9X">-->
<jdbcConnection driverClass="com.mysql.jdbc.Driver"
connectionURL="jdbc:mysql://localhost:3306/bd_search_engine"
userId="root"
password="123456">
</jdbcConnection>
<!--MyBatis 生成器只需要生成 Model-->
<javaModelGenerator targetPackage="com.jffox.cloud.datax.search.entities.base" targetProject="./src/main/java"/>
<!--mapper包路径-->
<!--<javaClientGenerator targetPackage="com.jffox.cloud.datax.search.mapper.hbaseindex" targetProject="./src/main/java" type="XMLMAPPER"/>-->
<table tableName="ref_dataitem$api">
<generatedKey column="id" sqlStatement="JDBC"/>
</table>
</context>
</generatorConfiguration>
druid配置:
@Data
@Slf4j
@Configuration
public class DruidConfig {
// @Bean(destroyMethod = "close", initMethod = "init")
@Primary
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource druidDataSource() {
DruidDataSource druidDataSource = new DruidDataSource();
return druidDataSource;
}
/**
* 注册一个StatViewServlet.
* @return
*/
@Bean
public ServletRegistrationBean druidStatViewServlet(){
//org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//添加初始化参数:initParams
//白名单:
servletRegistrationBean.addInitParameter("allow","*");
//登录查看信息的账号密码.
servletRegistrationBean.addInitParameter("loginUsername","admin");
servletRegistrationBean.addInitParameter("loginPassword","123456");
//是否能够重置数据.
servletRegistrationBean.addInitParameter("resetEnable","false");
return servletRegistrationBean;
}
/**
* 注册一个:filterRegistrationBean.
* @return
*/
@Bean
public FilterRegistrationBean druidStatFilter(){
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());
//添加过滤规则.
filterRegistrationBean.addUrlPatterns("/*");
//添加不需要忽略的格式信息.
filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");
return filterRegistrationBean;
}
}
热部署与打包配置: