您的位置:首页 > 编程语言 > Java开发

spring 基础学习

2015-07-03 10:10 489 查看
1、spring 注入学习

之前我们调用某个实例的方法都是 new 一个对象来进行处理,现在可以由spring 统一来管理(注入方式),这里说的注入有四种:set 方式注入、构造方式注入、静态工厂注入、实例工厂注入;这四种方式全都要配置 xml 来达到目的。

详细可参考这篇文章(转):/article/3808527.html

2、spring 如何通过配置加载 ApplicationContext

加载有几种方式,我个人习惯用 web.xml 配置方式来实现

<!-- 加载applicationContext.xml文件 -->
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

<servlet>
<servlet-name>context</servlet-name>
<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>


关键是需要配置ContextLoaderServlet 类,它会默认加载 /WEB-INF/applicationConetxt.xml 文件

详细可参考这篇文章(转):/article/6540234.html

3、applicationContext.xml 文件格式

在开发的过程中,由于我随便写了一个xml文件,导致出现很多异常,后来发现是因 xml 头没有按照一定的规范来写:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">
<beans default-autowire="byName" default-lazy-init="false">

<!-- 加载被拆分的Spring配置文件 -->
<!-- <import resource="applicationContext-dao.xml"/>
<import resource="applicationContext-service.xml"/> -->

<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>org.logicalcobwebs.proxool.ProxoolDriver</value>
</property>
<property name="url">
<value>proxool.ztsys</value>
</property>
</bean>

<bean id="SpringConfigTool" class="com.wdxx.dgyb.server.util.SpringConfigTool"></bean>

</beans>


这里还有一点需要注意:通过proxool 的方式来配置数据库连接的写法

4、ztsys 的具体信息如下

jdbc-0.proxool.alias=ztsys
#jdbc-0.proxool.driver-url=jdbc\:oracle\:thin\:@172.31.0.201\:1522\:ztsys2
#jdbc-0.proxool.driver-url=jdbc\:oracle\:thin\:@172.31.0.203\:1525\:ztsysyp
#jdbc-0.proxool.driver-url=jdbc\:oracle\:thin\:@192.168.10.104\:1521\:orcl
jdbc-0.proxool.driver-url=jdbc\:oracle\:thin\:@192.168.10.12\:1521\:ORCL
jdbc-0.proxool.driver-class=oracle.jdbc.driver.OracleDriver
#jdbc-0.user=application
#jdbc-0.password=44080A3217AFB034
jdbc-0.user=hisbase
#jdbc-0.password=0CB75C052C31C5E7
jdbc-0.password=AD4065469D887C3F
jdbc-0.proxool.house-keeping-sleep-time=40000
jdbc-0.proxool.house-keeping-test-sql=select sysdate from dual
jdbc-0.proxool.maximum-connection-count=50
jdbc-0.proxool.minimum-connection-count=5
jdbc-0.proxool.maximum-connection-lifetime=18000000
jdbc-0.proxool.simultaneous-build-throttle=5
jdbc-0.proxool.recently-started-threshold=40000
jdbc-0.proxool.overload-without-refusal-lifetime=50000
jdbc-0.proxool.maximum-active-time=900000
jdbc-0.proxool.verbose=true
jdbc-0.proxool.trace=true
jdbc-0.proxool.fatal-sql-exception=Fatal error
jdbc-0.proxool.prototype-count=2


5、代码中如何获得 ApplicationContext 呢?

我们需要编写一个类来实现 ApplicationContextAware 接口

import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;

public class SpringConfigTool implements ApplicationContextAware {// extends ApplicationObjectSupport{

public static ApplicationContext ac = null;
private static SpringConfigTool springConfigTool = null;

public synchronized static SpringConfigTool init() {
if (springConfigTool == null) {
springConfigTool = new SpringConfigTool();
}
return springConfigTool;
}

public void setApplicationContext(ApplicationContext applicationContext)throws BeansException {
ac = applicationContext;
}

public synchronized static Object getBean(String beanName) {
System.out.println("ApplicationContext : " + ac);
return ac.getBean(beanName);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: