spring6种配置datasource的方法

合集下载

datasourceautoconfiguration用法

datasourceautoconfiguration用法

datasourceautoconfiguration用法DataSourceAutoConfiguration是Spring Boot的一个自动配置类,它可以根据我们项目中的配置信息来自动配置数据源(database),使得我们可以快速的进行数据库连接和操作。

在这篇文章中,我们将会详细的介绍这个自动配置类的用法。

步骤1:引入依赖首先,我们需要在pom.xml中引入Spring Boot的Starter数据源依赖。

在引入该依赖后,我们就可以在项目中使用Spring Boot内置的HikariCP连接池。

```<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency>```步骤2:配置数据源在引入依赖后,我们需要在“application.properties”或“application.yml”文件中配置数据源。

例如,如果我们要连接MySQL数据库,我们可以写如下配置:```spring.datasource.url=jdbc:mysql://localhost:3306/db_name ername=rootspring.datasource.password=passwordspring.datasource.driver-class-name=com.mysql.jdbc.Driver```在这个配置文件中,我们可以指定要连接的数据库的URL、用户名、密码和驱动名称等等配置信息。

而在没有任何配置的情况下,Spring Boot将使用默认的H2内存数据库。

步骤3:启动应用程序当我们添加了以上两步后,我们就可以启动应用程序,并访问数据库进行操作了。

Spring Boot将自动为我们创建数据源并配置连接池,并将其注入到我们的应用程序中。

datasource连接池参数

datasource连接池参数

数据源连接池参数在软件开发中,数据源连接池参数是一个非常重要且常常被忽视的话题。

数据源连接池是一个存放数据库连接的缓冲池,用于提高数据库操作的性能和效率。

良好的连接池参数设置能够帮助我们更好地管理数据库连接,提升系统的性能和稳定性。

接下来,我将从深度和广度的角度对数据源连接池参数进行全面评估,并撰写一篇有价值的文章。

1. 数据源连接池的基本概念数据源连接池是应用程序与数据库之间的中间件,用于管理数据库连接,避免频繁地创建和销毁数据库连接,以提高数据库操作的效率和性能。

连接池通过维护一定数量的预先创建的数据库连接,当应用程序需要进行数据库操作时,可以直接从连接池中获取连接,而不需要重新创建,从而减少了连接的创建和销毁开销。

2. 数据源连接池参数的深度评估在对数据源连接池参数进行深度评估时,我们需要考虑以下几个方面:2.1 连接池大小参数连接池大小参数是连接池中可同时保存的最大连接数和最小连接数。

合理设置连接池大小能够避免连接过多导致资源浪费,以及连接过少导致系统性能下降的问题。

通常情况下,我们需要根据系统的并发访问量和数据库的负载能力来设置连接池大小参数。

2.2 连接超时参数连接超时参数用于设置连接在连接池中的最大等待超时时间。

当连接池中的连接全部被占用时,新的请求需要等待一段时间,如果等待时间超过了连接超时参数的设定值,将会抛出连接超时异常。

合理设置连接超时参数能够避免长时间的等待,提升系统的响应速度。

2.3 空闲连接回收参数空闲连接回收参数用于设置连接池中空闲连接的回收策略。

当连接池中的连接长时间处于空闲状态时,根据空闲连接回收参数的设定值,可以进行连接的关闭或者重新验证等操作,以避免资源的浪费和连接的过期问题。

2.4 连接生存周期参数连接生存周期参数用于设置连接在连接池中的最大生存时间。

如果连接在连接池中的生存时间超过了连接生存周期参数的设定值,将会被自动关闭。

合理设置连接生存周期参数能够避免长时间的连接占用和连接的无效问题。

java datasourceconfig用法

java datasourceconfig用法

java datasourceconfig用法Java的DataSourceConfig用法在Java中,DataSourceConfig用于配置数据源,它是连接数据库的重要组件之一。

数据源是一个连接池,用于管理数据库连接,提供了一种高效地获取和释放连接的方式,可以大大提高应用程序的性能。

使用DataSourceConfig,可以配置数据源的一些属性,如数据库的URL、用户名、密码等。

下面是使用DataSourceConfig的一般步骤:1. 导入相关的包:在Java文件的开头,需要导入相关的包来使用DataSourceConfig,比如:```javaimport javax.sql.DataSource;import org.springframework.jdbc.datasource.DriverManagerDataSource;```2. 创建DataSource实例:使用DriverManagerDataSource类或其他实现DataSource接口的类,创建一个DataSource实例。

例如:```javaString url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "password";DataSourceConfig dataSourceConfig = new DriverManagerDataSource(url, username, password);```3. 配置DataSource属性:根据实际需求,可以通过set方法设置DataSource的属性,例如最大连接数、最小连接数等。

例如:```javadataSourceConfig.setMaxActive(100);dataSourceConfig.setMaxIdle(30);```4. 使用DataSource:通过DataSource实例,可以获取数据库连接。

SpringBoot(七):集成DataSource与Druid监控配置

SpringBoot(七):集成DataSource与Druid监控配置

SpringBoot(七):集成DataSource与Druid监控配置绑定DataSource:Spring Boot默认的数据源是:org.apache.tomcat.jdbc.pool.DataSource,Druid是Java语⾔中最好的数据库连接池,并且能够提供强⼤的监控和扩展功能,⽽且datasource是⼀般项⽬都需要使⽤的功能。

因此,这⾥将学习如何使⽤springboot与druid集成datasource。

springboot2.0.1+alibaba druid组件导⼊maven:1)导⼊alibaba druid组件:<!--druid 依赖--><dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.9</version></dependency>备注:具体请查看官⽹提供的使⽤介绍:https:///alibaba/druid/tree/master/druid-spring-boot-starter。

2)导⼊mysql驱动包:<!--MySQL Driver驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency>3)导⼊springboot jpa集成组件:<!-- Spring Boot的JPA依赖包--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>此时,pom.xml配置内容为:1<?xml version="1.0" encoding="UTF-8"?>2<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"3 xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd">4<modelVersion>4.0.0</modelVersion>56<groupId>com.dx</groupId>7<artifactId>springboot-helloword</artifactId>8<version>0.0.1-SNAPSHOT</version>9<packaging>jar</packaging>1011<name>springboot-helloword</name>12<description>Demo project for Spring Boot</description>1314<parent>15<groupId>org.springframework.boot</groupId>16<artifactId>spring-boot-starter-parent</artifactId>17<version>2.0.1.RELEASE</version>18<relativePath/><!-- lookup parent from repository -->19</parent>2021<properties>22<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>23<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>24<java.version>1.8</java.version>25</properties>2627<dependencies>28<dependency>29<groupId>org.springframework.boot</groupId>30<artifactId>spring-boot-starter-web</artifactId>31</dependency>32<!--完成get set toString注册 -->33<dependency>34<groupId>org.projectlombok</groupId>35<artifactId>lombok</artifactId>36</dependency>37<!--springboot 热部署⼯具-->38<dependency>39<groupId>org.springframework.boot</groupId>40<artifactId>spring-boot-devtools</artifactId>41<optional>true</optional>42</dependency>43<dependency>44<groupId>org.springframework.boot</groupId>45<artifactId>spring-boot-starter-test</artifactId>46<scope>test</scope>47</dependency>48<dependency>49<groupId>org.springframework.boot</groupId>50<artifactId>spring-boot-starter-thymeleaf</artifactId>51</dependency>52<!--druid 依赖-->53<dependency>54<groupId>com.alibaba</groupId>55<artifactId>druid-spring-boot-starter</artifactId>56<version>1.1.9</version>57</dependency>58<!--MySQL Driver驱动包-->59<dependency>60<groupId>mysql</groupId>61<artifactId>mysql-connector-java</artifactId>62<scope>runtime</scope>63</dependency>64<!-- Spring Boot的JPA依赖包-->65<dependency>66<groupId>org.springframework.boot</groupId>67<artifactId>spring-boot-starter-data-jpa</artifactId>68</dependency>69</dependencies>7071<build>72<plugins>73<plugin>74<groupId>org.springframework.boot</groupId>75<artifactId>spring-boot-maven-plugin</artifactId>76</plugin>77</plugins>78</build>798081</project>View Code⾃定义datasource配置项加载:1)在src/resources/application.properties中添加以下配置信息:# ⾃定义数据库配置信息ername=rootdb.password=rootdb.url=jdbc:mysql://localhost:3306/springboot_helloworddb.driver-class-name=com.mysql.jdbc.Driver2)修改项⽬的启动⼊⼝,添加DataSource的bean注⼊,及标注⾃定义参数配置注⼊:package com.dx.controller;import com.alibaba.druid.pool.DruidDataSource;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.context.properties.ConfigurationProperties;import org.springframework.context.annotation.Bean;import javax.sql.DataSource;@SpringBootApplicationpublic class SpringbootHellowordApplication {@Bean@ConfigurationProperties(prefix = "db")public DataSource dateSource() {DruidDataSource dataSource = new DruidDataSource();return dataSource;}public static void main(String[] args) {SpringApplication.run(SpringbootHellowordApplication.class, args);}}这⾥的dateSource() 启到的作⽤就是注⼊datasourcebean,同时加载⾃定义配置项的作⽤。

Spring中配置DataSource的六种方式

Spring中配置DataSource的六种方式

Spring中配置DataSource的六种⽅式第⼀种:beans.xmlXml代码1. <bean id="dataSource" class="mons.dbcp.BasicDataSource"2. destroy-method="close">3. <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />4. <property name="url"5. value="jdbc:sqlserver://localhost:1433;DatabaseName=spring" />6. <property name="username" value="sa" />7. <property name="password" value="********" />8. </bean>第⼆种:beans.xml<bean id="mappings"Xml代码1. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">2. <property name="locations" value="classpath:jdbc.properties"></property>3. </bean>4. <bean id="dataSource" class="mons.dbcp.BasicDataSource"5. destroy-method="close">6. <property name="driverClassName" value="${jdbc.driverClassName}" />7. <property name="url" value="${jdbc.url}" />8. <property name="username" value="${ername}" />9. <property name="password" value="${jdbc.password}" />10. </bean>在src⽂件夹⾥新建⼀个jdbc.properties⽂件,⾥⾯的内容为如下:Xml代码1. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver2. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring3. ername=sa4. jdbc.password=********第三种:beans.xmlXml代码1. <bean id="mappings"2. class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">3. <property name="locations" value="classpath:jdbc.properties"></property>4. </bean>5. <bean id="dataSource" class="mons.dbcp.BasicDataSource"6. destroy-method="close">7. <property name="driverClassName" value="${jdbc.driverClassName}" />8. <property name="url" value="${jdbc.url}" />9. <property name="username" value="${ername}" />10. <property name="password" value="${jdbc.password}" />11. </bean>12.13. <context:property-placeholder location="classpath:jdbc.properties" />在src⽂件夹⾥新建⼀个jdbc.properties⽂件,⾥⾯的内容为如下:14. jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver15. jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=spring16. ername=sa17. jdbc.password=********其中第⼆种与第三种类似,只是指定配置⽂件的⽅法不⼀样。

springboot进行动态数据源配置(基于注解方式)

springboot进行动态数据源配置(基于注解方式)

springboot进⾏动态数据源配置(基于注解⽅式)⼀、应⽤场景项⽬需要从⾃⼰的数据库上读取和管理数据外,还有⼀部分业务涉及到其他多个数据库。

为了能够灵活地指定具体的数据库,本⽂基于注解和AOP的⽅法实现多数据源⾃动切换。

在使⽤过程中,只需要添加注解就可以使⽤,简单⽅便。

⼆、准备⼯作2.1 创建数据表USE test;CREATE TABLE `user` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(255) NOT NULL,`age` int(11) NOT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=3DEFAULT CHARSET=utf8USE test1;CREATE TABLE `teacher` (`tid` int(11) NOT NULL AUTO_INCREMENT,`tname` varchar(255) NOT NULL,`tage` int(11) NOT NULL,PRIMARY KEY (`tid`)) ENGINE=InnoDB AUTO_INCREMENT=3DEFAULT CHARSET=utf8USE test2;CREATE TABLE `student` (`sid` int(11) NOT NULL AUTO_INCREMENT,`sname` varchar(255) NOT NULL,`sage` int(11) NOT NULL,PRIMARY KEY (`sid`)) ENGINE=InnoDB AUTO_INCREMENT=3DEFAULT CHARSET=utf82.2 添加依赖spring boot:1.5.8.RELEASEmysql:5.1.44mybatis:1.3.2druid:1.1.3<?xml version="1.0" encoding="UTF-8"?><project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/POM/4.0.0 /xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>dynamic-data-source</artifactId><version>0.0.1-SNAPSHOT</version><packaging>jar</packaging><name>dynamic-data-source</name><description>Demo project for Spring Boot</description><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.8.RELEASE</version><relativePath/><!-- lookup parent from repository --></parent><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!--mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><!--mybatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.2</version></dependency><!--aop--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId></dependency><!--数据库连接池--><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.1.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin><!-- mybatis generator ⾃动⽣成代码插件 --><plugin><groupId>org.mybatis.generator</groupId><artifactId>mybatis-generator-maven-plugin</artifactId><version>1.3.2</version><configuration><overwrite>true</overwrite><verbose>true</verbose></configuration></plugin></plugins></build></project>2.3 ⽣成 bean、dao、mapper使⽤MyBatis Generator⾃动⽣成,⽅法如下:三、动态数据源3.1 配置⽂件 application.properties custom.datasource.defaultname=defaults=ds1,ds2# 默认数据源custom.datasource.driver-class-name=com.mysql.jdbc.Driver custom.datasource.url=jdbc:mysql://localhost:3306/test ername=rootcustom.datasource.password=root# 更多数据源custom.datasource.ds1.driver-class-name=com.mysql.jdbc.Driver custom.datasource.ds1.url=jdbc:mysql://localhost:3306/test1 ername=rootcustom.datasource.ds1.password=rootcustom.datasource.ds2.driver-class-name=com.mysql.jdbc.Drivercustom.datasource.ds2.url=jdbc:mysql://localhost:3306/test2ername=rootcustom.datasource.ds2.password=rootcustom.datasource.filters=statcustom.datasource.maxActive=100custom.datasource.initialSize=1custom.datasource.minIdle=1custom.datasource.timeBetweenEvictionRunsMillis=60000custom.datasource.minEvictableIdleTimeMillis=300000custom.datasource.validationQuery=select 'x'custom.datasource.testWhileIdle=truecustom.datasource.testOnBorrow=falsecustom.datasource.testOnReturn=falsecustom.datasource.poolPreparedStatements=truecustom.datasource.maxOpenPreparedStatements=100mybatis.type-aliases-package=com.example.demo.model.*mybatis.mapper-locations=classpath:mapper/**/*.xml3.2 动态数据源核⼼代码DynamicDataSource:动态数据源切换;DynamicDataSourceAspect:利⽤AOP切⾯实现数据源的动态切换;DynamicDataSourceContextHolder:动态切换数据源;DynamicDataSourceRegister:动态数据源注册;TargetDataSource:在⽅法上使⽤,⽤于指定使⽤哪个数据源。

springbootdatasource配置参数

springbootdatasource配置参数

springbootdatasource配置参数spring.datasource.remove-abandoned
指定当连接超过废弃超时时间时,是否⽴刻删除该连接.
spring.datasource.remove-abandoned-timeout
指定连接应该被废弃的时间.
spring.datasource.maximum-pool-size 指定连接池最⼤的连接数,包括使⽤中的和空闲的连接.
spring.datasource.min-evictable-idle-time-millis 指定⼀个空闲连接最少空闲多久后可被清除.
spring.datasource.max-idle 指定连接池最⼤的空闲连接数量.
spring.datasource.max-lifetime 指定连接池中连接的最⼤⽣存时间,毫秒单位.
spring.datasource.idle-timeout
指定连接多久没被使⽤时,被设置为空闲,默认为10ms
spring.datasource.abandon-when-percentage-full
设定超时被废弃的连接占到多少⽐例时要被关闭或上报。

Spring事务配置的五种方式

Spring事务配置的五种方式

Spring事务配置的五种方式Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。

DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,TransactionManager的实现为HibernateTransactionManager。

具体如下图:根据代理机制的不同,总结了五种Spring事务的配置方式,配置文件如下:第一种方式:每个Bean都有一个代理<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd /schema/aop /schem a/aop/spring-aop-2.5.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml" /><property name="configurationClass"value="org.hibernate.cfg.AnnotationConfiguration" /></bean><!-- 定义事务管理器(声明式的事务) --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager "><property name="sessionFactory" ref="sessionFactory" /></bean><!-- 配置DAO --><bean id="userDaoTarget" class="erDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /></bean><bean id="userDao"class="org.springframework.transaction.interceptor.TransactionProxyFa ctoryBean"><!-- 配置事务管理器 --><property name="transactionManager"ref="transactionManager" /><property name="target" ref="userDaoTarget" /><property name="proxyInterfaces"value=".bluesky.spring.dao.GeneratorDao" /><!-- 配置事务属性 --><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean></beans>第二种方式:所有Bean共享一个代理基类<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd /schema/aop /schema/aop/spring-aop-2.5.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="configLocation"value="classpath:hibernate.cfg.xml" /><property name="configurationClass"value="org.hibernate.cfg.AnnotationConfiguration" /></bean><!-- 定义事务管理器(声明式的事务) --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager "><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="transactionBase"class="org.springframework.transaction.interceptor.TransactionProxyFa ctoryBean"lazy-init="true" abstract="true"><!-- 配置事务管理器 --><property name="transactionManager" ref="transactionManager" /> <!-- 配置事务属性 --><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean><!-- 配置DAO --><bean id="userDaoTarget" class="erDaoImpl"> <property name="sessionFactory" ref="sessionFactory" /></bean><bean id="userDao" parent="transactionBase" ><property name="target" ref="userDaoTarget" /></bean></beans>第三种方式:使用拦截器<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd /schema/aop /schem a/aop/spring-aop-2.5.xsd"><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml" /><property name="configurationClass"value="org.hibernate.cfg.AnnotationConfiguration" /></bean><!-- 定义事务管理器(声明式的事务) --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><bean id="transactionInterceptor"class="org.springframework.transaction.interceptor.TransactionInterce ptor"><property name="transactionManager" ref="transactionManager" /> <!-- 配置事务属性 --><property name="transactionAttributes"><props><prop key="*">PROPAGATION_REQUIRED</prop></props></property></bean><beanclass="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyC reator"><property name="beanNames"><list><value>*Dao</value></list></property><property name="interceptorNames"><list><value>transactionInterceptor</value></list></property></bean><!-- 配置DAO --><bean id="userDao" class="erDaoImpl"><property name="sessionFactory" ref="sessionFactory" /></bean></beans>第四种方式:使用tx标签配置的拦截器<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd /schema/aop /schem a/aop/spring-aop-2.5.xsd/schema/tx /schema /tx/spring-tx-2.5.xsd"><context:annotation-config /><context:component-scan base-package=".bluesky" /><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml" /><property name="configurationClass"value="org.hibernate.cfg.AnnotationConfiguration" /></bean><!-- 定义事务管理器(声明式的事务) --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager "><property name="sessionFactory" ref="sessionFactory" /></bean><tx:advice id="txAdvice" transaction-manager="transactionManager"> <tx:attributes><tx:method name="*" propagation="REQUIRED" /></tx:attributes></tx:advice><aop:config><aop:pointcut id="interceptorPointCuts"expression="execution(* .bluesky.spring.dao.*.*(..))" /> <aop:advisor advice-ref="txAdvice"pointcut-ref="interceptorPointCuts" /></aop:config></beans>第五种方式:全注解<?xml version="1.0" encoding="UTF-8"?><beans xmlns="/schema/beans"xmlns:xsi="/2001/XMLSchema-instance"xmlns:context="/schema/context"xmlns:aop="/schema/aop"xmlns:tx="/schema/tx"xsi:schemaLocation="/schema/beans/schema/beans/spring-beans-2.5.xsd/schema/context/schema/context/spring-context-2.5.xsd /schema/aop /schem a/aop/spring-aop-2.5.xsd/schema/tx /schema /tx/spring-tx-2.5.xsd"><context:annotation-config /><context:component-scan base-package=".bluesky" /><tx:annotation-driven transaction-manager="transactionManager"/><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"> <property name="configLocation"value="classpath:hibernate.cfg.xml" /><property name="configurationClass"value="org.hibernate.cfg.AnnotationConfiguration" /></bean><!-- 定义事务管理器(声明式的事务) --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager "><property name="sessionFactory" ref="sessionFactory" /></bean></beans>此时在DAO上需加上Transactional注解,如下:package .dawnsky.spring.dao;import java.util.List;import org.hibernate.SessionFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import ponent;import er;TransactionalComponent("userDao")public class UserDaoImpl extends HibernateDaoSupport implements UserDao {public List<User> listUsers() {return this.getSession().createQuery("from User").list();}}。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Spring3中,配置DataSource的方法有6种。

JDBCSpringXMLMicrosoftHTML在Spring3中,配置DataSource的方法有五种。

第一种:beans.xmlXml代码1.<bean id="dataSource"class="mons.dbcp.BasicDataSource"2.destroy-method="close">3.<property name="driverClassName"value="com.microsoft.sqlserver.jdbc.SQLServerDriver" />4.<property name="url"5.value="jdbc:sqlserver://localhost:1433;DatabaseName=spring" />6.<property name="username" value="sa" />7.<property name="password" value="********" />8.</bean>第二种:beans.xml<bean id="mappings"Xml代码1.class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">2.<property name="locations"value="classpath:jdbc.properties"></property>3.</bean>4.<bean id="dataSource"class="mons.dbcp.BasicDataSource"5.destroy-method="close">6.<property name="driverClassName" value="${jdbc.driverClassName}"/>7.<property name="url" value="${jdbc.url}" />8.<property name="username" value="${ername}" />9.<property name="password" value="${jdbc.password}" />10.</bean>在src文件夹里新建一个jdbc.properties文件,里面的内容为如下:Xml代码1.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver2.jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=springername=sa4.jdbc.password=********第三种:beans.xmlXml代码1.<bean id="mappings"2.class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">3.<property name="locations"value="classpath:jdbc.properties"></property>4.</bean>5.<bean id="dataSource"class="mons.dbcp.BasicDataSource"6.destroy-method="close">7.<property name="driverClassName" value="${jdbc.driverClassName}"/>8.<property name="url" value="${jdbc.url}" />9.<property name="username" value="${ername}" />10.<property name="password" value="${jdbc.password}" />11.</bean>12.13.<context:property-placeholderlocation="classpath:jdbc.properties" />在src文件夹里新建一个jdbc.properties文件,里面的内容为如下:14.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver15.jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=springername=sa17.jdbc.password=********其中第二种与第三种类似,只是指定配置文件的方法不一样。

第四种:beans.xmlXml代码1.<bean id="mappings"2.class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">3.4.<!-- typed as a java.util.Properties -->5.<property name="properties">6.<value>7.jdbc.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver8.jdbcjdbc.url=jdbc:sqlserver://localhost:1433;DatabaseName=springername=sa10.jdbc.password=********11.</value>12.</property>13.</bean>14.15.<bean id="dataSource"class="mons.dbcp.BasicDataSource"16.destroy-method="close">17.<property name="driverClassName" value="${jdbc.driverClassName}"/>18.<property name="url" value="${jdbc.url}" />19.<property name="username" value="${ername}" />20.<property name="password" value="${jdbc.password}" />21.</bean>第五种:Xml代码1.beans.xml2.<bean id="myDataSource"class="mons.dbcp.BasicDataSource"3.destroy-method="close"4.p:driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"5.p:url="jdbc:sqlserver://localhost:1433;DatabaseName=spring"6.p:username="sa"7.p:password="********"/>再加上命名空间:Xml代码1.xmlns:p="/schema/p"性能参数要根据实际情况测试得来的数据确定如何配置。

转自:/fenglin/articles/130494.html第六种,最近发在网上看到pring3中提供了一种简便的方式就是context:property-placeholder/元素只需要在spring的配置文件里添加一句Xml代码1.<context:property-placeholderlocation="classpath:jdbc.properties"/>即可,这里location值为参数配置文件的位置,参数配置文件通常放在src目录下,而参数配置文件的格式跟java通用的参数配置文件相同,即键值对的形式,例如:#jdbc配置Java代码1.test.jdbc.driverClassName=com.mysql.jdbc.Driver2.test.jdbc.url=jdbc:mysql://localhost:3306/testername=root4.test.jdbc.password=root行内#号后面部分为注释应用:1.这样一来就可以为spring配置的bean的属性设置值了,比如spring有一个jdbc数据源的类DriverManagerDataSource在配置文件里这么定义bean:Java代码1.<bean id="testDataSource"class="org.springframework.jdbc.datasource.DriverManagerDataSou rce">2.<property name="driverClassName"value="${test.jdbc.driverClassName}"/>3.<property name="url" value="${test.jdbc.url}"/>4.<property name="username" value="${ername}"/>5.<property name="password" value="${test.jdbc.password}"/>6.</bean>2.甚至可以将${ }这种形式的变量用在spring提供的注解当中,为注解的属性提供值外在化应用参数的配置在开发企业应用期间,或者在将企业应用部署到生产环境时,应用依赖的很多参数信息往往需要调整,比如LDAP连接、RDBMS JDBC连接信息。

相关文档
最新文档