Spring
是轻量级的容器和非侵占性的框架。
实现了Ioc容器实现了AOP概念提供对持久层与实务的支持实现了MVC模式一个全方位的应用程序框架
SpringIoC
Spring的IOC容器实现了对象的生命周期管理,降低了组件间的耦合度,将耦合推迟到了配置文件中,实现了软件各层的耦合。
提供了AOP支持,可以针对POJO对象提供声明式服务能力(如:声明式事务),分离了商业逻辑组件(核心关注点)和通用服务组件(横切关注点)。
减少了对Factory和Singleton的数量, 使代码层次更加清晰。
提供了众多的辅助类(如:JdbcTemplate、HibernateTemplate),加快了应用开发。
对于Hibernate Session或Jdbc Connection资源,应用将无需再处理打开和关闭。
对于主流的应用框架(如:Hibernate、JSF、Struts)提供了整合方案
一、JAR包
1 spring-framework-2.5.2\lib\jakarta-commons\commons-logging.jar2 spring-framework-2.5.2\lib\log4j\log4j-1.2.14.jar3 spring-framework-2.5.2\dist\spring.jar
二、结构
三、代码
Clazz.java
1 package entity; 2 3 4 public class Clazz { 5 private String name; 6 7 //无参,构造方法 8 public Clazz(){ 9 System.out.println("-----Clazz()构造方法-----");10 }11 12 public Clazz(String name){13 this.name=name;14 }15 public String getName(){16 return name;17 }18 public void setName(String name){19 this.name=name;20 }21 }
Test.java
1 package test; 2 3 import org.springframework.beans.factory.BeanFactory; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import entity.Clazz; 6 7 public class Test { 8 9 public static void main(String[] args)10 {11 12 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");13 System.out.println("_______________");14 Clazz c1 = (Clazz) factory.getBean("clazz");15 16 System.out.println(c1.getName());17 }18 }
Test1.java
1 package test; 2 3 import org.springframework.beans.factory.BeanFactory; 4 import org.springframework.context.support.ClassPathXmlApplicationContext; 5 import entity.Clazz; 6 7 public class Test1 { 8 9 public static void main(String[] args)10 {11 12 BeanFactory factory = new ClassPathXmlApplicationContext("applicationContext.xml");13 Clazz c1 = (Clazz) factory.getBean("clazz");14 Clazz c2 = (Clazz) factory.getBean("clazz");15 16 System.out.println("c1==c2"+(c1==c2));17 System.out.println(c1.getName());18 c2.setName("zy131");19 System.out.println(c1.getName());//c1c2同一个对象20 }21 }
applicationContext.xml
1 2 310 11 12 13 14 20 21 2215 16 19