spring 基础学习

1、spring 注入学习

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

    详细可参考这篇文章(转):http://blessht.iteye.com/blog/1162131


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 文件

    详细可参考这篇文章(转):http://www.cnblogs.com/hy928302776/p/3194086.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);
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值