spring2 配置文件
- <?xml version="1.0"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!-- 数据源配置 -->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass">
- <value>oracle.jdbc.driver.OracleDriver</value>
- </property>
- <property name="jdbcUrl" value="jdbc:oracle:thin:@IP:端口:SID" />
- <property name="acquireIncrement" value="1"/>
- <property name="idleConnectionTestPeriod" value="300"/>
- <property name="maxPoolSize" value="5"/>
- <property name="minPoolSize" value="1"/>
- <property name="initialPoolSize" value="1" />
- <property name="numHelperThreads" value="3"/>
- <property name="maxIdleTime" value="1200" />
- <property name="acquireRetryAttempts" value="2"/>
- <property name="preferredTestQuery" value=" select 1 from dual "/>
- <property name="testConnectionOnCheckin" value="true"/>
-
<property name="properties" ref="dataSourceProperties"/>
- </bean>
-
- <bean id="dataSourceProperties" class="PropertiesEncryptFactoryBean">
- <property name="properties">
- <props>
- <prop key="user">xxxx加密后</prop>
- <prop key="password">xxxxxxx加密后</prop>
- </props>
- </property>
- </bean>
2.PropertiesEncryptFactoryBean(加密类)
- import java.util.Properties;
-
- import org.springframework.beans.factory.FactoryBean;
-
- public class PropertiesEncryptFactoryBean implements FactoryBean {
-
- private Properties properties;
-
- public Object getObject() throws Exception {
- return getProperties();
- }
-
- public Class getObjectType() {
- return java.util.Properties.class;
- }
-
- public boolean isSingleton() {
- return true;
- }
-
- public Properties getProperties() {
- return properties;
- }
-
- public void setProperties(Properties inProperties) {
- this.properties = inProperties;
- String originalUsername = properties.getProperty("user");
- String originalPassword = properties.getProperty("password");
- if (originalUsername != null){
- String newUsername = deEncryptUsername(originalUsername);
- properties.put("user", newUsername);
- }
- if (originalPassword != null){
- String newPassword = deEncryptPassword(originalPassword);
- properties.put("password", newPassword);
- }
- }
-
- private String deEncryptUsername(String originalUsername){
- return deEncryptString(originalUsername);
- }
-
- private String deEncryptPassword(String originalPassword){
- return deEncryptString(originalPassword);
- }
-
- private String deEncryptString(String originalString){
- StringBuilder newString = new StringBuilder();
- for (int i = 0; i < originalString.length(); i++) {
- char eachChar= originalString.charAt(i);
- char newChar = (char)(eachChar + i);
- newString.append(newChar);
- }
- return newString.toString();
- }
-
- }
ComboPooledDataSource的properties属性可被注入user,password
只有user,password两个属性是可配置,其他属性不存也不是取自properties(具体可看C3P0源码)
转自:http://aguu125.iteye.com/blog/579402
分享到:
相关推荐
5. **扩展性**:c3p0是模块化的,可以与其他数据源如Oracle UCP、HikariCP等结合使用,或者通过自定义实现来扩展其功能。 在实际使用中,你需要在项目中引入`c3p0-0.9.1.2.jar`这个库文件。这个版本的c3p0是2009年...
接下来,我们需要配置C3P0的数据源,这通常通过在Java配置文件中设置一系列参数来完成,如初始化大小、最大连接数、超时时间等。例如: ```properties # C3P0配置示例 com.mchange.v2.c3p0.min_size=5 ...
- 配置 Hibernate:引入 Hibernate 相关依赖,配置 Hibernate 的核心文件(如 `hibernate.cfg.xml`),定义数据源、SessionFactory 等。 - 创建实体类:根据数据库表结构,创建对应的 Java 实体类,使用注解(@...
数据源是连接数据库的关键,本例中使用了C3P0连接池,因为它提供了更丰富的配置选项。 4. **Hibernate配置**:`sessionFactory`配置包括数据源、JDBC驱动、URL、用户名和密码。此外,还需要设置连接池的大小(如...
- Servlet接收到请求,从JavaBean中提取数据,执行验证操作(如检查用户名是否已存在、密码是否符合规则等)。 - 如果验证通过,Servlet将用户信息保存到数据库,并生成成功消息;如果验证失败,返回错误信息。 5...
Spring提供了多种数据源选项,如BasicDataSource或C3P0。 - **3.3 配置SessionFactory**:配置Hibernate SessionFactory,指定Hibernate配置文件的位置以及其他必要的参数。 - **3.4 配置事务**:通过Spring的...
8. **性能优化**:为了提升系统性能,可以使用缓存技术(如Spring的Cache Abstraction)、连接池(如Apache DBCP或C3P0)以及合理的数据库设计。此外,还可以通过Struts2的拦截器进行性能监控和优化。 这个"shop...
- **连接池**:为了提高性能和资源管理,通常使用连接池(如C3P0、Apache DBCP或HikariCP)来管理数据库连接。 5. **安全机制**: - **CSRF Token**:防止跨站请求伪造攻击,每个表单提交时应包含一个唯一的Token...
MyEclipse支持配置连接池,如C3P0、Apache DBCP或HikariCP,这些连接池组件可以帮助管理数据库连接的生命周期。 6. **异常处理和测试用例**:在开发过程中,还应编写测试用例来模拟各种异常情况,如网络中断、超时...
不过,为了提高效率和可维护性,建议使用更现代的JDBC驱动,如Apache的DBCP或C3P0,以及ORM框架如Hibernate或MyBatis,它们提供了更好的性能和更方便的API。 总的来说,Java连接Access MDB文件涉及到JDBC接口、ODBC...
Spring MVC 是一个强大的Java Web开发框架,用于构建...数据源配置通常使用Apache的DBCP或C3P0,而SessionFactory配置则是为Hibernate提供数据库连接参数,如数据库URL、用户名、密码和驱动类名。 ```xml ...
- 配置C3P0连接池,定义数据库连接参数,如驱动类、URL、用户名和密码。 - 配置Hibernate相关属性,如方言、SQL显示、格式化SQL和自动更新数据库结构。 - 使用log4j.properties文件进行日志管理。 6. 事务管理:...
- 数据库连接池如C3P0或Apache DBCP提高数据库连接效率。 5. **安全性**: - 使用HTTPS协议保证数据传输的安全。 - 权限控制:根据用户角色分配不同操作权限,防止未授权访问。 - 数据加密:敏感信息如密码应...
7. **com.springsource.com.mchange.v2.c3p0-0.9.1.2.jar** 和 **c3p0-0.9.1.jar**:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,为数据库连接提供了自动管理,包括连接创建、测试和回收。 8. **...
- `sqlDataSource`: 使用C3P0连接池配置SQL Server的数据源。 - `driverClass`: 数据库驱动类。 - `jdbcUrl`: 数据库URL。 - `user`: 用户名。 - `password`: 密码。 - `autoCommitOnClose`: 自动提交设置。 ...
在这个项目中,采用C3P0数据库连接池技术,C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。数据库连接池在多用户并发访问数据库时,可以显著提高性能,因为建立和释放...
- 配置 SessionFactory,使用 c3p0 作为数据源; - DAO 类继承 HibernateDaoSupport; - 在 Spring 配置文件中配置 SessionFactory; - 测试 SessionFactory 功能; - 管理事务提交与回滚。 #### 二、学习方法 - *...
- C3P0:C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。它提供了一些高级功能,如自动测试连接、连接池的大小控制等,有助于提高数据库资源的利用率。 - DBCP (Apache ...
支持任何第三方的数据库连接池,如 DBCP、C3P0、BoneCP、Druid、HikariCP 等。 ShardingSphere-Proxy ShardingSphere-Proxy 是一个轻量级 Java 框架,在 Java 的 JDBC 层提供额外服务。它使用客户端直连数据库,以...
因此,我们通常采用数据源(DataSource)和连接池(例如C3P0、Apache DBCP或HikariCP)来管理和复用数据库连接,提高系统性能。 6. ORM框架:Java中的Hibernate和MyBatis是流行的ORM(对象关系映射)框架,它们简化...