六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 3|回复: 0

eclipse中搭建 Spring2.5框架

[复制链接]

升级  52.33%

105

主题

105

主题

105

主题

举人

Rank: 3Rank: 3

积分
357
 楼主| 发表于 2013-2-3 12:52:14 | 显示全部楼层 |阅读模式
依赖注入:在运行期,由外部容器动态地将依赖对象注入到组件中

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

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

 

 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 stubreturn "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  UserDaoImplgetUserDaoSingleFactory(){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,王五
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表