eclipse中搭建 Spring2.5框架

依赖注入:在运行期,由外部容器动态地将依赖对象注入到组件中

控制反转:应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部窗口负

责得。这样控制权就由应用转移到了外部容器,控制权的转移就是所谓的反转。

 

 Spring 的主要特性。

(1)降低组件之间的耦合度,实现软件各层之间的解耦。

(2)可以使用容器提供的众多服务,如:事务管理服务、消息服务、JMS 服务、持久化服

务等等。

(3)容器提供单例模式支持,开发人员不再需要自己编写实现代码。

(4)容器提供了AOP 技术,利用它很容易实现如权限拦截,运行期监控等功能。

(5)容器提供的众多辅作类,使用这些类能够加快应用的开发,如:JdbcTemplate

HibernateTemplate.

(6)对主流的应用框架提供了集成支持。

 

首先,在官方网站下载spring2.5.zip包,

解压文件,找到lib目录,

commons-attributes-api.jar

commons-attributes-compiler.jar

commons-logging.jar

log4j-1.2.15.jar

spring-beans.jar

spring-context.jar

spring-core.jar

 

以上只是加入了spring的核心包, 如果需要有aop支持的,则需另外加入.

在eclipse中新建工程,

然后把如上的几个jar包拷贝到lib目录中.

 

建立包:

pack.java.iuserdao.

IuserDao 接口.

package pack.java.iuserdao;

public interface IuserDao {
 public String userdao(String name);
}

 

 

建立包pack.java.userdaoimpl.

package pack.java.userdaoimpl;
import java.io.Serializable;
import pack.java.iuserdao.IuserDao;

public class UserDaoImpl implements IuserDao, Serializable {
	
	private static final long serialVersionUID = 4746185155498963758L;

	public String userdao(String name) {
		// TODO Auto-generated method stub
		return "My Name Is "+name;
	}
}

 

 

建立一个简单的单例模式.

package pack.java.spring;
import pack.java.userdaoimpl.UserDaoImpl;
/**
 * 单例模式;
 * @author Administrator
 *
 */
public class UserDapSingleFactory {
	private static UserDaoImpl userDaoImpl;
	
	private UserDapSingleFactory(){}
	
	public static  UserDaoImpl	getUserDaoSingleFactory(){
		if(userDaoImpl==null){
			return new UserDaoImpl();
		}
		return userDaoImpl;
	}
}

 

Spring的applicationContext.xml配置如下内容:

<?xml version="1.0" encoding="UTF-8"?>
<beans
 xmlns="http://www.springframework.org/schema/beans"
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
 
 <!-- UserDao的注入 -->
 <bean id="userdaoimpl" class="pack.java.userdaoimpl.UserDaoImpl"/>
 
 <!-- SingleFactory的注入 -->
 <bean id="sigleFactory" class="pack.java.spring.UserDapSingleFactory" factory-method="getUserDaoSingleFactory"/>
 
 <!-- SprigDao的注入 -->
 <bean id="springDemo" class="pack.java.userdaoimpl.SpringDemo">
  <property name="userdaoimpl" ref="userdaoimpl"></property>
  <property name="addressList">
   <list>
    <value type="java.lang.String">广东省深圳市</value>
    <value type="java.lang.String">湖南省株洲市</value>
    <value type="java.lang.String">陕西省西安市</value>
   </list>
  </property>
  
  <property name="likeSet">
   <set>
    <value>打篮球</value>
    <value>乒乓球</value>
    <value>踢足球</value>
   </set>
  </property>
  
  <property name="nameMap">
   <map>
    <entry key="key1" value="张三"></entry>
    <entry key="key2" value="李四"></entry>
    <entry key="key3" value="王五"></entry>
   </map>
  </property>
 </bean>
</beans> 

 

 

 

最后,写入一个测试类;

package pack.java.userdaoimpl;

import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import pack.java.iuserdao.IuserDao;
import pack.java.spring.UserDapSingleFactory;

public class SpringDemo {
 //通过依赖注入,得到实例对象;
 private IuserDao userdaoimpl;
 private UserDapSingleFactory sigleFactoryImpl;
 private List<String> addressList;
 private Map<String,String> nameMap;
 private Set<String> likeSet;

 public void setNameMap(Map<String, String> nameMap) {
  this.nameMap = nameMap;
 }

 public void setLikeSet(Set<String> likeSet) {
  this.likeSet = likeSet;
 }

 public void setAddressList(List<String> addressList) {
  this.addressList = addressList;
 }

 public void setSigleFactoryImpl(UserDapSingleFactory sigleFactoryImpl) {
  this.sigleFactoryImpl = sigleFactoryImpl;
 }

 public void setUserdaoimpl(IuserDao userdaoimpl) {
  this.userdaoimpl = userdaoimpl;
 }

 @SuppressWarnings("static-access")
 private void displayInfo(){
  ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml");
  SpringDemo springDemo=(SpringDemo) applicationContext.getBean("springDemo");
  String str=springDemo.userdaoimpl.userdao("Admin");
  System.out.println(str);
  
  UserDaoImpl iuserDao=springDemo.sigleFactoryImpl.getUserDaoSingleFactory();
  System.out.println(iuserDao.userdao("周海涛"));
  
  System.out.println("\nlist集合输出如下:");
  for(String strList:springDemo.addressList){
   System.out.println(strList);
  }
  
  System.out.println("\nset集合输出如下:");
  for(String like:springDemo.likeSet){
   System.out.println(like);
  }
  
  System.out.println("\nmap集合输出如下:");
  for(Iterator<String> iterator=springDemo.nameMap.keySet().iterator();iterator.hasNext();){
   String key=iterator.next();
   System.out.println(key+","+springDemo.nameMap.get(key));
  }
 }
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  new SpringDemo().displayInfo();
 }
}
 

 

 

 

 

测试结果,

---------------------------------------------------------------------------

My Name Is Admin
My Name Is 周海涛

 

list集合输出如下:
广东省深圳市
湖南省株洲市
陕西省西安市

 

set集合输出如下:
打篮球
乒乓球
踢足球

 

map集合输出如下:
key1,张三
key2,李四
key3,王五

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值