最近有一个新项目需要开发搭建了个SpringBoot框架 记录一下!
Oracle连接jar编译到maven仓库参考:Maven编译jar包到本地仓库
1、SpringBoot版本:
2.1.6.RELEASE
2、pom配置
- org.springframework.boot 
- spring-boot-starter-jdbc 
- org.springframework.boot 
- spring-boot-starter-web 
- com.alibaba 
- druid 
- 1.1.10 
- org.oracle 
- ojdbc6 
- 11.2.0.2.0 
- org.mybatis.spring.boot 
- mybatis-spring-boot-starter 
- 2.0.1 
- org.springframework.boot 
- spring-boot-starter-aop 
- log4j 
- log4j 
- 1.2.17 
3、Druid配置
Druid配置类
- package com.jst.tjgx.supervisionservice.datasource; 
- import com.alibaba.druid.pool.DruidDataSource; 
- import com.alibaba.druid.support.http.StatViewServlet; 
- import com.alibaba.druid.support.http.WebStatFilter; 
- import org.slf4j.Logger; 
- import org.slf4j.LoggerFactory; 
- import org.springframework.boot.context.properties.ConfigurationProperties; 
- import org.springframework.boot.web.servlet.FilterRegistrationBean; 
- import org.springframework.boot.web.servlet.ServletRegistrationBean; 
- import org.springframework.context.annotation.Bean; 
- import org.springframework.context.annotation.Configuration; 
- import javax.sql.DataSource; 
- import java.sql.SQLException; 
- @Configuration 
- public class DruidConfiguration { 
- private static final Logger logger = LoggerFactory.getLogger(DruidConfiguration.class); 
- private static final String DB_PREFIX = "spring.datasource"; 
- @Bean 
- public ServletRegistrationBean druidServlet() { 
- logger.info( "init Druid Servlet Configuration "); 
- ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); 
- // IP白名单 (没有配置或者为空,则允许所有访问) 
- servletRegistrationBean.addInitParameter( "allow", ""); 
- // IP黑名单(共同存在时,deny优先于allow) 
- //servletRegistrationBean.addInitParameter("deny", "192.168.1.100"); 
- //控制台管理用户 
- servletRegistrationBean.addInitParameter( "loginUsername", "admin"); 
- servletRegistrationBean.addInitParameter( "loginPassword", "admin"); 
- //是否能够重置数据 禁用HTML页面上的“Reset All”功能 
- servletRegistrationBean.addInitParameter( "resetEnable", "false"); 
- return servletRegistrationBean; 
- } 
- @Bean 
- public FilterRegistrationBean filterRegistrationBean() { 
- FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); 
- filterRegistrationBean.addUrlPatterns( "/*"); 
- filterRegistrationBean.addInitParameter( "exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); 
- return filterRegistrationBean; 
- } 
- @ConfigurationProperties(prefix = DB_PREFIX) 
- class IDataSourceProperties { 
- private String url; 
- private String username; 
- private String password; 
- private String driverClassName; 
- private int initialSize; 
- private int minIdle; 
- private int maxActive; 
- private int maxWait; 
- private int timeBetweenEvictionRunsMillis; 
- private int minEvictableIdleTimeMillis; 
- private String validationQuery; 
- private boolean testWhileIdle; 
- private boolean testOnBorrow; 
- private boolean testOnReturn; 
- private boolean poolPreparedStatements; 
- private int maxPoolPreparedStatementPerConnectionSize; 
- private String filters; 
- private String connectionProperties; 
- @Bean 
- public DataSource dataSource() { 
- DruidDataSource datasource = new DruidDataSource(); 
- datasource.setUrl(url); 
- datasource.setUsername(username); 
- datasource.setPassword(password); 
- datasource.setDriverClassName(driverClassName); 
- //configuration 
- datasource.setInitialSize(initialSize); 
- datasource.setMinIdle(minIdle); 
- datasource.setMaxActive(maxActive); 
- datasource.setMaxWait(maxWait); 
- datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); 
- datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); 
- datasource.setValidationQuery(validationQuery); 
- datasource.setTestWhileIdle(testWhileIdle); 
- datasource.setTestOnBorrow(testOnBorrow); 
- datasource.setTestOnReturn(testOnReturn); 
- datasource.setPoolPreparedStatements(poolPreparedStatements); 
- datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize); 
- try { 
- datasource.setFilters(filters); 
- logger.info( "druid configuration initialization success! "); 
- } catch (SQLException e) { 
- System.err.println( "druid configuration initialization filter: " + e); 
- } 
- datasource.setConnectionProperties(connectionProperties); 
- return datasource; 
- } 
- public String getUrl() { 
- return url; 
- } 
- public void setUrl(String url) { 
- this.url = url; 
- } 
- public String getUsername() { 
- return username; 
- } 
- public void setUsername(String username) { 
- this.username = username; 
- } 
- public String getPassword() { 
- return password; 
- } 
- public void setPassword(String password) { 
- this.password = password; 
- } 
- public String getDriverClassName() { 
- return driverClassName; 
- } 
- public void setDriverClassName(String driverClassName) { 
- this.driverClassName = driverClassName; 
- } 
- public int getInitialSize() { 
- return initialSize; 
- } 
- public void setInitialSize(int initialSize) { 
- this.initialSize = initialSize; 
- } 
- public int getMinIdle() { 
- return minIdle; 
- } 
- public void setMinIdle(int minIdle) { 
- this.minIdle = minIdle; 
- } 
- public int getMaxActive() { 
- return maxActive; 
- } 
- public void setMaxActive(int maxActive) { 
- this.maxActive = maxActive; 
- } 
- public int getMaxWait() { 
- return maxWait; 
- } 
- public void setMaxWait(int maxWait) { 
- this.maxWait = maxWait; 
- } 
- public int getTimeBetweenEvictionRunsMillis() { 
- return timeBetweenEvictionRunsMillis; 
- } 
- public void setTimeBetweenEvictionRunsMillis(int timeBetweenEvictionRunsMillis) { 
- this.timeBetweenEvictionRunsMillis = timeBetweenEvictionRunsMillis; 
- } 
- public int getMinEvictableIdleTimeMillis() { 
- return minEvictableIdleTimeMillis; 
- } 
- public void setMinEvictableIdleTimeMillis(int minEvictableIdleTimeMillis) { 
- this.minEvictableIdleTimeMillis = minEvictableIdleTimeMillis; 
- } 
- public String getValidationQuery() { 
- return validationQuery; 
- } 
- public void setValidationQuery(String validationQuery) { 
- this.validationQuery = validationQuery; 
- } 
- public boolean isTestWhileIdle() { 
- return testWhileIdle; 
- } 
- public void setTestWhileIdle(boolean testWhileIdle) { 
- this.testWhileIdle = testWhileIdle; 
- } 
- public boolean isTestOnBorrow() { 
- return testOnBorrow; 
- } 
- public void setTestOnBorrow(boolean testOnBorrow) { 
- this.testOnBorrow = testOnBorrow; 
- } 
- public boolean isTestOnReturn() { 
- return testOnReturn; 
- } 
- public void setTestOnReturn(boolean testOnReturn) { 
- this.testOnReturn = testOnReturn; 
- } 
- public boolean isPoolPreparedStatements() { 
- return poolPreparedStatements; 
- } 
- public void setPoolPreparedStatements(boolean poolPreparedStatements) { 
- this.poolPreparedStatements = poolPreparedStatements; 
- } 
- public int getMaxPoolPreparedStatementPerConnectionSize() { 
- return maxPoolPreparedStatementPerConnectionSize; 
- } 
- public void setMaxPoolPreparedStatementPerConnectionSize(int maxPoolPreparedStatementPerConnectionSize) { 
- this.maxPoolPreparedStatementPerConnectionSize = maxPoolPreparedStatementPerConnectionSize; 
- } 
- public String getFilters() { 
- return filters; 
- } 
- public void setFilters(String filters) { 
- this.filters = filters; 
- } 
- public String getConnectionProperties() { 
- return connectionProperties; 
- } 
- public void setConnectionProperties(String connectionProperties) { 
- this.connectionProperties = connectionProperties; 
- } 
- } 
- } 
application.properties Druid和Mybatis配置
- #数据库配置 
- #连接池类型 阿里巴巴Druid 
- spring.datasource.type=com.alibaba.druid.pool.DruidDataSource 
- #数据库地址 
- spring.datasource.url=jdbc:oracle:thin:@(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 数据库IP地址)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = 更换成你的) )) 
- spring.datasource.driver- class-name=oracle.jdbc.driver.OracleDriver 
- spring.datasource.username=用户名 
- spring.datasource.password=密码 
- # 初始化大小,最小,最大 
- spring.datasource.initialSize= 1 
- spring.datasource.minIdle= 3 
- spring.datasource.maxActive= 20 
- # 配置获取连接等待超时的时间 
- spring.datasource.maxWait= 60000 
- # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 
- spring.datasource.timeBetweenEvictionRunsMillis= 60000 
- # 配置一个连接在池中最小生存的时间,单位是毫秒 
- spring.datasource.minEvictableIdleTimeMillis= 30000 
- spring.datasource.validationQuery= select 1 from dual 
- spring.datasource.testWhileIdle= true 
- spring.datasource.testOnBorrow= false 
- spring.datasource.testOnReturn= false 
- # 打开PSCache,并且指定每个连接上PSCache的大小 
- spring.datasource.poolPreparedStatements= true 
- spring.datasource.maxPoolPreparedStatementPerConnectionSize= 20 
- # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 
- spring.datasource.filters=stat,wall,slf4j 
- # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 
- spring.datasource.connectionProperties=druid.stat.mergeSql= true;druid.stat.slowSqlMillis=5000 
- #mapper.xml文件 配置 
- #mybatis.config-location=classpath:mybatis/SQLMapConfig.xml 
- mybatis.mapper-locations=classpath:mybatis/*.xml 
查看Druid的各种信息:
配置完成后启动项目可以访问:http://localhost:8080/druid
 
  
  
  
 
 
  
 
 
 