一,Spring加载.properties文件的方式
将.properties文件放在src文件的根目录,在Spring配置文件里进行配置
//这里使用了Spring di
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value> classpath:jdbc.properties</value>
</property>
</bean>
二,获取.properties 文件的属性
jdbc.properties文件
//数据库的一些配置文件
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc\:mysql\://localhost\:3306/practice
jdbc.username=root
jdbc.password=123456
获取jdbc.properties的值并给DataSource类的一些属性赋值
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
三,模板模式
一些公用的代码将它写在一个类中,在真正的业务中,要使用它,只需要继承这个类或者使用组合的方式
例如,现在想要进行操作数据库的一些操作
模板类
public class Template {
private DataSource dataSource;
//为了使用set注入(di),所以有DataSource的set方法
public void setDataSource(DataSource dataSource) {
this.dataSource = dataSource;
}
//想要使用构造方法注入
public Template(DataSource dataSource) {
this.dataSource = dataSource;
}
public Template() {
}
public void insert(String sql) throws Exception {
Connection connection = dataSource.getConnection();
Statement statement = connection.createStatement();
statement.execute(sql);
}
}
在业务类中,直接调用insert方法即可,要想实现增加用户的业务一共有四种方式
1,personDao继承于Template,也继承了setDataSource方法,直接在配置文件中赋值
//java
public class PersonDao extends Template {
public void savePerson()throws Exception{
this.insert("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
}
}
//xml配置文件
<!-- 第一种方式 -->
<bean id="personDao" class="com.fiberhome.spring.jdbc.PersonDao">
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
2,Spring中的继承,指定两个bean之间父子关系
//java
public class PersonDao1 extends Template {
public void savePerson()throws Exception{
this.insert("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
}
}
//xml配置文件
<!--第二种方式 -->
<bean id="template" class="com.fiberhome.spring.jdbc.Template" >
<property name="dataSource">
<ref bean="dataSource" />
</property>
</bean>
<bean id="personDao1" class="com.fiberhome.spring.jdbc.PersonDao1"
parent="template"></bean>
3,使用组合的方式,直接将Template给到personDao2中,然后直接用di赋值
//java
public class PersonDao2 {
private Template template;
public void setTemplate(Template template) {
this.template = template;
}
public void savePerson()throws Exception{
template.insert("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
}
}
//xml配置文件
<!-- 第三种方式 -->
<bean id="personDao2" class="com.fiberhome.spring.jdbc.PersonDao2">
<property name="template">
<ref bean="template" />
</property>
</bean>
4,使用构造器进行di
//java
public class PersonDao3 extends Template {
public PersonDao3(DataSource dataSource) {
super(dataSource);
// TODO Auto-generated constructor stub
}
public void savePerson()throws Exception{
this.insert("INSERT INTO ist_library_user (NAME ) VALUES('xixi')");
}
}
//xml配置文件
<bean id="personDao3" class="com.fiberhome.spring.jdbc.PersonDao3" >
<constructor-arg index="0" ref="dataSource"></constructor-arg>
</bean>
网友评论