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 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 staticUserDaoImplgetUserDaoSingleFactory(){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 stubnew SpringDemo().displayInfo(); }}
测试结果,
---------------------------------------------------------------------------
My Name Is Admin
My Name Is 周海涛
list集合输出如下:
广东省深圳市
湖南省株洲市
陕西省西安市
set集合输出如下:
打篮球
乒乓球
踢足球
map集合输出如下:
key1,张三
key2,李四
key3,王五
页:
[1]