springmvc+druid+dataSource配置的两种方式

一、一般的配置方式

数据库连接配置在jdbc.properties文件中,这种方式有一个最大的缺点,数据库的配置信息对开发人员是完全可见的,十分方便程序员删库跑路。spring配置具体如下:

1、jdbc.properties文件:

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/test_table?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true&
username=root
password=root

2、spring和druid配置:

    <!-- 引入配置文件 -->
    <bean id="propertyConfigurer"
          class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
        <property name="location" value="classpath:jdbc.properties"/>
    </bean>
    <!-- JDBC Data Source. It is assumed you have MySQL running on localhost
    port 3306 with username root and blank password. Change below if it‘s not
    the case -->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
    <property name="driverClassName" value="${driver}"/>
    <!-- 基本属性 url、user、password -->
    <property name="url" value="${url}"/>
    <property name="username" value="${username}"/>
    <property name="password" value="${password}"/>

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

    <!-- 配置获取连接等待超时的时间 -->
    <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"/>

    <!-- 配置监控统计拦截的filters -->
    <property name="filters" value="stat"/>
    </bean>

以上简单的配置就好了。

二、JNDI配置方式

JNDI需要配置spring和web容器(tomcat)相关配置文件(context.xml),这种配置的优点是spring配置中只包含jndi的名称,开发者看不到到具体数据库的账号和密码,为程序员删库跑路增加了难度。

1、Tomcat中context.xml配置如下:

    <Resource
            name="jdbc/erp"
            factory="com.alibaba.druid.pool.DruidDataSourceFactory"
            auth="Container"
            type="javax.sql.DataSource"
            driverClassName="com.mysql.jdbc.Driver"
            url="jdbc:mysql://192.168.1.7:3306/test_table?useUnicode=true&amp;characterEncoding=UTF-8&amp;zeroDateTimeBehavior=convertToNull&amp;allowMultiQueries=true&amp;"
            username="root"
            password="root"
            maxActive="50"
            maxWait="10000"
            removeabandoned="true"
            removeabandonedtimeout="60"
            logabandoned="false"
            filters="stat"/>

2、除此之外在Tomcat中lib添加mysql和druid香瓜两个jar:

mysql-connector-java-5.1.38.jar
druid-1.0.18.jar

3、spring配置

    <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="java:comp/env/jdbc/erp"/>
    </bean>

转载请注明出处

小结:推荐第二种JNDI的配置方式,对于第二种配置方式,开发者在本地Tomcat配置开发的数据库信息,生产环境Tomcat配置生产数据链接信息,生产数据对开发者不可见。

时间: 2024-10-18 10:40:52

springmvc+druid+dataSource配置的两种方式的相关文章

SpringMVC文件上传的两种方式

搞JavaWEB的应该或多或少都做过文件上传,之前也做过简单的上传,但是如下的需求也确实把我为难了一把: 1.上传需要异步, 2.需要把上传后文件的地址返回来, 3.需要进度条显示上传进度. 项目使用SpringMVC架构+easyUI,初步分析,进度条可以使用easyui自带的进度条,上传可以使用ajaxFileUpload或者ajaxForm.文件传上去,然后把路径带回来是没问题的,关键是上传进度怎么获取.最终,两种方式都实现啦. 首先,不管哪种方式,后台对文件处理都是必须的.文件处理: 1

springmvc获取资源文件的两种方式(超简单)

1 比如我们在sc目录下新建一个db.properties文件内容如下 DriverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/testusername = rootpassword =root 2把配置文件交给容器管理在applicationContext.xml加上这一句 <context:property-placeholder location="classpath:db.properties" f

Hyper-V 下linux虚拟机静态IP上网配置的两种方式(1)

工作需要,搭建linux环境,网上搜了两种Hyper-V配置linux静态IP及上网的方式,记录一下,方便查阅,如下是桥接方式的配置: 本实例所用的各项资源说明,系统是windows10企业版64bit,虚拟机管理器使用自带的Hyper-V管理器,虚拟机安装的系统是CentOS7.如下图所示:   首先创建虚拟交换机.在Hyper-V管理器中的虚拟交换机管理器中新建虚拟交换机, 类型使用内部(之前使用外部一直没有成功,原因暂不明确),步骤图如下:   配置完上一步骤后,在网络连接中查看所有适配器

JDK的path环境变量配置(两种方式)

1 path环境变量的作用及配置方式1 1.1 path环境变量的作用 1) 在JDK的bin目录下开发程序容易产生的问题 如果文件过多,不方便管理: 删除自己写过的不需要的文件,可能不小心把JDK自带的工具给删除了. 2) 如何解决问题呢 notepad这样的命令为什么在任何路径下都能够执行,原因是配置path环境变量. path配置的是可执行的文件.exe,配置后可以在不同的盘符下访问path路径下的这些可执行文件. 1.2 Path环境变量的配置方式1 右键点击桌面计算机→选择属性→选择高

IIS下自定义错误页面配置的两种方式(亲测可行)--IIS服务器

网站自定义错误页面的设置,大家应该都知道它的重要性……不多说,下面带大家一步步在IIS下设置网站自定义错误页面…… 1.首先进入你的网站主页,找到[错误页](注意是IIS下的错误页不是.NET错误页),双击[错误页] 2.这样就进入了错误页面,点击[编辑]或者双击状态代码行,打开“编辑自定义错误页面” 3.填写状态码,响应操作处选择第二项[在此网站上执行],输入URL 4.查看错误页面相对根目录的位置,按照示例填写就可以的.然后依次设置其它页面 5.当然还可以通过修改配置文件(web.confi

配置Mongodb两种方式

手动上传方式 Mongodb-Centos7 安装之前准备工作 下载地址:https://www.mongodb.org/dl/linux 环境说明:下载地址 1系统虚拟机信息:CentOS7 X86_64位: 2软件及版本:mongodb-linux-x86_64-3.6.3.tgz:Xshell工具 MongoDB 提供了 linux 各发行版本 64 位的安装包,你可以在官网下载安装包,地址如下:mongodb官网,进入官网,如下图所示: 点击Download,进入下载页面: 选择版本:L

mybatis3.0 配置等值连接两种方式:resultMap和resulttype

<!-- namespace: Mpper 接口全类名 --> <mapper namespace="com.zelin.mybatis.one2one.ClassesMapper"> <resultMap> <id property="id" column="c_id"> <result property="name" column="c_name"

Spring Boot 中实现定时任务的两种方式

在 Spring + SpringMVC 环境中,一般来说,要实现定时任务,我们有两中方案,一种是使用 Spring 自带的定时任务处理器 @Scheduled 注解,另一种就是使用第三方框架 Quartz ,Spring Boot 源自 Spring+SpringMVC ,因此天然具备这两个 Spring 中的定时任务实现策略,当然也支持 Quartz,本文我们就来看下 Spring Boot 中两种定时任务的实现方式. @Scheduled 使用 @Scheduled 非常容易,直接创建一个

springMVC两种方式实现多文件上传及效率比较

springMVC实现 多文件上传的方式有两种,一种是我们经常使用的以字节流的方式进行文件上传,另外一种是使用springMVC包装好的解析器进行上传.这两种方式对于实 现多文件上传效率上却有着很大的差距,下面我们通过实例来看一下这两种方式的实现方式,同时比较一下在效率上到底存在着多大的差距. 1.下载相关jar包. 需要引入的jar出了springMVC的jar包外,还需要引入 com.springsource.org.apache.commons.fileupload-1.2.0.jar和