Spring PropertyPlaceholderConfigurer数据库配置

pom.xml中添加依赖

<!-- mysql-connector-java -->
<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>5.1.38</version>
</dependency>

<!-- druid -->
<dependency>
  <groupId>com.alibaba</groupId>
  <artifactId>druid</artifactId>
  <version>1.0.20</version>
</dependency>

属性配置文件:system-config.properties

################################################
# DataSource Config
jdbc.url=jdbc\:mysql\://127.0.0.1:3306/quartz?useUnicode\=true&characterEncoding\=utf8&autoReconnect\=true&useSSL\=false&zeroDateTimeBehavior\=convertToNull
jdbc.username=root
jdbc.publicKey=MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBALIT9sFn8U+Hoo80Q+Hepwc0ZN6HBiyAW4SiLCXLhNNjxB45mtRamABoB0O9dEsziT/gwtuXMuC2bWePdCvEb1ECAwEAAQ==
jdbc.password=fCHxOiDBDsWY/BJLg05fbNGvQmDRPZJufcvyqCqml+zwmB4Gw/Bn7lzy8w117CQ1jEBFpj0ERgQsCBJD0ROfJw==

applicationContext.xml配置文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd

        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">

    <!-- 只需要加载service、dao即可,不需要加载controller -->
    <context:component-scan base-package="com.quartz">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
    </context:component-scan>

    <!-- 占位符 -->
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:system-config.properties</value>
            </list>
        </property>
    </bean>

    <!-- 防SQL注入过滤器 -->
    <bean id="wall-filter" class="com.alibaba.druid.wall.WallFilter">
        <property name="dbType" value="mysql" />
    </bean>
    <!-- 监控信息过滤器 -->
    <bean id="stat-filter" class="com.alibaba.druid.filter.stat.StatFilter">
        <!-- slowSqlMillis用来配置SQL慢的标准,执行时间超过slowSqlMillis的就是慢。 -->
        <property name="slowSqlMillis" value="10000" />
        <property name="logSlowSql" value="true" />
        <property name="mergeSql" value="true" />
    </bean>

    <!-- 数据源 -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
        <!-- 基本属性 url、user、password -->
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <!-- 密码加密 -->
        <property name="filters" value="config" />
        <property name="connectionProperties" value="config.decrypt=true;config.decrypt.key=${jdbc.publicKey}" />
        <property name="password" value="${jdbc.password}" />

        <!-- 配置初始化大小、最小、最大 -->
        <property name="initialSize" value="5" />
        <property name="minIdle" value="5" />
        <property name="maxActive" value="30" />

        <!-- 配置获取连接等待超时的时间 -->
        <property name="maxWait" value="60000" />

        <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->
        <property name="timeBetweenEvictionRunsMillis" value="60000" />

        <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->
        <property name="minEvictableIdleTimeMillis" value="300000" />

        <property name="validationQuery" value="SELECT 'x'" />
        <property name="testWhileIdle" value="true" />
        <property name="testOnBorrow" value="false" />
        <property name="testOnReturn" value="false" />

        <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
        <property name="poolPreparedStatements" value="false" />
        <property name="maxPoolPreparedStatementPerConnectionSize" value="20" />

        <!-- 超过时间限制是否回收 -->
        <property name="removeAbandoned" value="true" />
        <!-- 超时时间;单位为秒。180秒=3分钟 -->
        <property name="removeAbandonedTimeout" value="180" />
        <!-- 关闭abanded连接时输出错误日志 -->
        <property name="logAbandoned" value="true" />
        <property name="proxyFilters">
            <list>
                <!-- 监控信息过滤器 -->
                <ref bean="stat-filter" />
                <!-- 防注入的话从前台传排序字段排序不好用 -->
                <ref bean="wall-filter" />
            </list>
        </property>
    </bean>

</beans>
时间: 2024-10-12 04:14:15

Spring PropertyPlaceholderConfigurer数据库配置的相关文章

spring mvc-springmvc spring hibernate 怎么配置连接两个数据库

问题描述 springmvc spring hibernate 怎么配置连接两个数据库 persistent.xml配置 <?xml version="1.0" encoding="UTF-8"?> <persistence xmlns="http://java.sun.com/xml/ns/persistence" version="2.0"> <persistence-unit name=&q

Spring中如何配置DataSource数据源

在Spring框架中有如下3种获得DataSource对象的方法: 1.从JNDI获得DataSource. 2.从第三方的连接池获得DataSource. 3.使用DriverManagerDataSource获得DataSource. 一.从JNDI获得DataSource SpringJNDI数据源配置信息: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean&qu

Spring MVC的配置

Spring MVC 在Spring的体系中和JdbcTemplate互相独立,分属于不同的jar包,使用默认位置不同的spring配置文件. Spring JdbcTemplate基本上完全可以单独拿来使用.也就是说,假如你在写一个Web项目,而且你打算用纯粹的JSP来实现网页的显示.逻辑处理也完全没有任何问题,你只需要在你的JSP页面中创建Spring JdbcTemplate的对象,使用它的方法,在SpringJdbc环境下编写java的方法,让你的JSP页面去使用这些方法,一点问题没有.

Spring Boot自动配置

在上篇文章如何运行Spring Boot应用中,已经熟悉了如何通过maven或者gradle创建一个Spring Boot应用,这篇文章主要学习Spring Boot的自动配置,包括注解的使用以及一些配置约束等等. 关于Spring Boot的特性介绍,可以参考Spring Boot特性. 主应用类 在Spring Boot应用中,我们通常将主应用类放置于应用的根包中,例如,com.javachen.example.主应用类有main方法,并且使用了@EnableAutoConfiguratio

Spring征服数据库

DAO:数据访问对象(data access object)的缩写. 如何你曾经编写过JDBC代码,你肯定会意识到如果不强制捕获SQLException,你几乎不能使用JDBC做任何事情.SQLException表示在尝试访问数据库时出现了问题,但是这个异常却没有告诉你哪里出错了以及如何进行处理. 可能导致抛出SQLException的常见问题包括: 1.应用程序无法连接数据库. 2.要执行的查询有语法错误. 3.查询中所使用的表和(或)列不存在. 4.试图插入或更新的数据违反了数据库的完整性约

spring+ibatis 数据库修改数据不成功的问题

问题描述 spring+ibatis 数据库修改数据不成功的问题 工程中调用dao执行数据表修改,调用方法如下: sqlmap描述如下图: 最后编译通过,发布到tomcat后运行,浏览器显示异常,异常描述如下: 求大神解答这是什么情况,该如何解决? 解决方案 你的传入的参数parameterType怎么不在sqlmap的xml中配置呢 解决方案二: 谢谢楼上提醒,小白一个,不知道iabtis入参只能有一个,如果有多个参数必须放入map中,现在问题解决了,谢谢提醒! 解决方案三: 谢谢楼上提醒,小

使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置

原文:使用IntelliJ IDEA开发SpringMVC网站(三)数据库配置 摘要 讲解在IntelliJ IDEA中,如何进行Mysql数据库的配置 目录[-] 文章已针对IDEA 15做了一定的更新,部分更新较为重要,请重新阅读文章并下载最新源码. 六.数据库配置 1.创建Mysql数据库 2.IntelliJ IDEA导入数据库 3.配置数据库 更新: 转载请注明出处:Gaussic(一个致力于AI研究却不得不兼顾项目的研究生). 注:在阅读本文前,请先阅读: 使用IntelliJ ID

spring 注解-spring容器已经配置好数据连接池,类里面用jdbc方式是不是就不管用了

问题描述 spring容器已经配置好数据连接池,类里面用jdbc方式是不是就不管用了 求大肾解答,driud阿里巴巴的数据连接池bean配置在spring容器里面!我在JAVA类中@resource注入,datasource拿到连接!是null!数据库什么链接信息都是对的.求大神解答druid连接池,获取连接的详细代码,不要沉 解决方案 你有没有在JAVA类中写set方法 按理说不写也对啊 解决方案二: spring配置ibatis的jdbc方式和proxool连接池方式 解决方案三: 不要沉啊

spring 事物-spring+mybatis事物配置的问题

问题描述 spring+mybatis事物配置的问题 昨天遇到一个有关事物方面的问题,请大家帮忙看看,问题出在了什么地方,谢谢! 具体问题描述:根据B表同步A表的数据,结果service方法返回后B表的数据已处理标志没有更新,程序在第二次同步数据时B表的数据才能更新.具体情况见下面代码的注释. 事物配置文件: tx:attributes rollback-for="java.lang.Exception" /> propagation="REQUIRED" r