当前位置: 首页 > news >正文

在线免费解答网站怎么建佛山市禅城网站建设公司

在线免费解答网站怎么建,佛山市禅城网站建设公司,东莞网上销售网站建设,怎样免费做网站视频讲解Spring第三方资源配置管理 1. 管理DataSource连接池对象1.1 管理Druid连接池【重点】1.2 管理c3p0连接池 2. 加载properties属性文件【重点】2.1 基本用法2.2 配置不加载系统属性2.3 加载properties文件写法 说明:以管理DataSource连接池对象为例讲解第三方资源配置…

在这里插入图片描述

Spring第三方资源配置管理

      • 1. 管理DataSource连接池对象
        • 1.1 管理Druid连接池【重点】
        • 1.2 管理c3p0连接池
      • 2. 加载properties属性文件【重点】
        • 2.1 基本用法
        • 2.2 配置不加载系统属性
        • 2.3 加载properties文件写法

说明:以管理DataSource连接池对象为例讲解第三方资源配置管理

1. 管理DataSource连接池对象

问题导入

配置数据库连接参数时,注入驱动类名是用driverClassName还是driver?

1.1 管理Druid连接池【重点】

数据库准备

create database if not exists spring_db character set utf8;
use spring_db;
create table if not exists tbl_account(id int primary key auto_increment,name varchar(20),money double
);
insert into tbl_account values(null,'Tom',1000);
insert into tbl_account values(null,'Jerry',1000);

【第一步】添加Druid连接池依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.16</version>
</dependency>
<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.47</version>
</dependency>

注意:除了添加以上两个依赖之外,别忘了添加spring-context依赖。

【第二步】配置DruidDataSource连接池Bean对象

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/spring_db"/><property name="username" value="root"/><property name="password" value="root"/>
</bean>

【第三步】在测试类中从IOC容器中获取连接池对象并打印

public class App {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource dataSource = (DataSource) ctx.getBean("dataSource");System.out.println(dataSource);}
}

1.2 管理c3p0连接池

【第一步】添加c3p0连接池依赖

<dependency><groupId>c3p0</groupId><artifactId>c3p0</artifactId><version>0.9.1.2</version>
</dependency>

【第二步】配置c3p0连接池Bean对象

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"><property name="driverClass" value="com.mysql.jdbc.Driver"/><property name="jdbcUrl" value="jdbc:mysql://localhost:3306/spring_db"/><property name="user" value="root"/><property name="password" value="root"/><property name="maxPoolSize" value="1000"/>
</bean>

注意:同一个Spring容器中不能有两个id="dataSource"的连接池。

【第三步】在测试类中从IOC容器中获取连接池对象并打印

public class App {public static void main(String[] args) {ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");DataSource dataSource = (DataSource) ctx.getBean("dataSource");System.out.println(dataSource);}
}

2. 加载properties属性文件【重点】

目的:将数据库的连接参数抽取到一个单独的文件中,与Spring配置文件解耦。

问题导入

问题1:如何解决使用EL表达式读取属性文件中的值结果读取到了系统属性问题?

问题2:加载properties文件写法标准写法该怎么写?

2.1 基本用法

【第一步】编写jdbc.properties属性文件

jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/spring_db
jdbc.username=root
jdbc.password=root

【第二步】在applicationContext.xml中开启开启context命名空间,加载jdbc.properties属性文件

image-20210730101826913

小技巧:如果同学们觉得上述复制粘贴方式不好改或者容易改错,其实idea是有提示功能的,注意不要选错就行了。有些版本的idea没有这个提示,那么就按照上面复制粘贴的方式改,改完之后可以做成live template模板,后期直接用。

image-20210730102053281

<context:property-placeholder location="jdbc.properties"/>

【第三步】在配置连接池Bean的地方使用EL表达式获取jdbc.properties属性文件中的值

<bean class="com.alibaba.druid.pool.DruidDataSource"><property name="driverClassName" value="${jdbc.driver}"/><property name="url" value="${jdbc.url}"/><property name="username" value="${jdbc.username}"/><property name="password" value="${jdbc.password}"/>
</bean>

配置完成之后,运行之前的获取Druid连接池代码,可以获取到连接池对象就表示配置成功。

2.2 配置不加载系统属性

问题

如果属性文件中配置的不是jdbc.username,而是username=root666,那么使用${username}获取到的不是root666,而是计算机的名称。

原因

系统属性的优先级比我们属性文件中的高,替换了我们的username=root666。

解决

解决1:换一个名称,例如不叫username,叫jdbc.username。

解决2:使用system-properties-mode="NEVER"属性表示不使用系统属性。

<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>

2.3 加载properties文件写法

  • 不加载系统属性
<context:property-placeholder location="jdbc.properties" system-properties-mode="NEVER"/>
  • 加载多个properties文件
<context:property-placeholder location="jdbc.properties,msg.properties"/>
  • 加载所有properties文件
<context:property-placeholder location="*.properties"/>
  • 加载properties文件**标准格式**
<context:property-placeholder location="classpath:*.properties"/>
  • 加载properties文件标准格式
<context:property-placeholder location="classpath*:*.properties"/>
http://www.yayakq.cn/news/922261/

相关文章:

  • 网站程序怎么做做神秘顾客哪个网站好
  • 国内漂亮大气的网站做网站开发找哪家公司
  • 哈尔滨松北区建设局网站公司网站可以自己做
  • 桥头东莞网站建设python 做企业网站
  • 哪个网站域名解析网站扫二维码怎么做的
  • 韶关网站建设第一品牌站酷网免费素材图库官网
  • 购物网站首页分成几个模块wordpress 301重定向
  • 公司网站怎么选建筑工程网招聘信息
  • 搜索引擎网站制作网站设计尺寸1920
  • 网站建设技术支持祥云平台茶叶电子商务网站开发技术支持
  • 上海专门做培训的网站微信小程序开发文档 菜鸟教程
  • 保护动物网站建设策划书软件技术论坛
  • 南昌城市旅游网站建设网站重新备案需要多长时间
  • 制作荧光字网站域名升级
  • 网站建设专业特长学校网站模板html下载
  • 社交网站 用户互黏度个人未授权做的网站
  • 做宣传语的网站哪些专业要学网页制作
  • 网站能调用一些字体荥阳网站建设公司
  • html网站开场动画效果模板石家庄今天最新新闻头条
  • 外贸专业网站mvc做的游戏网站代码
  • 深圳网站建设公司招聘网站建设赠送seo
  • 上海网站建设心得企业网站的常见类型有
  • 涿鹿做网站wl17581企业代运营公司
  • 注册建设通网站wordpress视频模板
  • 山东网站备案注销网上做视频赚钱的网站有哪些
  • 江苏建设人才网站厦门百度竞价开户
  • 合理的网站结构wordpress 数据库清空
  • 优秀网站建设哪个公司好wordpress企业中文主题下载
  • 上海建站shwzzz建立网站请示
  • 商城天气学seo网站推广好吗