Spring是一种开源轻量级框架,是为了解决企业应用程序开发复杂性而创建的,Spring致力于解决JavaEE的各层解决方案,而不仅仅于某一层的方案。
Spring为什么这么流行?我们使用Spring的原因是什么?
我们仔细想想就会发现,原来Spring解决了一个非常关键的问题。那就是让我们把对象之间的依赖关系用配置文件管理 也是就我们在对象与对象之间的依赖的时候我们不再通过对象去创建对象,他们之间的依赖关系,用配置文件来管理。这也是它的依赖注入的机制,而这个注入关系在一个叫IOC的容器中管理。
这个容器中,Spring通过把对象包装在Bean中而达到对这些对象的管理。
Spring有两个目标:1、让现有的技术更容易使用,2、促进良好的编程习惯。Spring是一个全面的解决方案,它坚持一个原则:不从新造轮子。已经有较好解决方案的领域,Spring绝不重复性实现,比如:对象持久化和OR映射,Spring只对现有的JDBC,Hibernate等技术提供支持,使之更容易使用,而不做重复的实现。
Spring的功能和特点大致是被组织成了7个部分:
1、 Spring Core:Spring框架的核心,提供了IOC和依赖注入特性
2、 Spring Context:它提供了一种框架风格的方式来访问对象,有些像JNDI注册表,它继承自Beans包的功能,同时增加了国际化,事件传播,资源装载,以及透明创建上下文
3、 Spring AOP:通过配置管理,Spring AOP直接将面向方面编程功能集成到了Spring框架中
4、 Spring DAO:提供了JDBC抽象层,它可以消除冗长的JDBC编码和解析数据块厂商特有的错误代码
5、 Spring ORM:Spring框架插入了若干个ORM框架,从而提供了ORM对象关系工具,其中包括,JDO,Hibernate,iBatis等。所有这些都遵从Spring的通用事物和DAO异常层次结构。
6、 Spring Web模块:Spring的Web上下文建模建立在应用程序上下文模块之上,为基于Web的应用程序提供了上下文,所以,他支持与Jakarta Struts的集成,
Spring MVC框架:MVC框架是一个全功能的构建Web应用程序的MVC实现。
各个部分的应用场景
1、 Spring Core:即,Spring核心,它是框架最基础的部分,提供IOC和依赖注入特性
2、 Spring Context:即,Spring上下文容器,它是BeanFactory功能加强的一个子接口
3、 Spring Web:它提供Web应用开发的支持
4、 Spring MVC:它针对Web应用中MVC思想的实现
5、 Spring DAO:提供对JDBC抽象层,简化了JDBC编码,同时,编码更具有健壮性。
6、 Spring ORM:它支持用于流行的ORM框架的整合,比如:Spring + Hibernate、Spring + iBatis、Spring + JDO的整合等等。
7、 Spring AOP:AOP即,面向切面编程,它提供了与AOP联盟兼容的编程实现
实际上这些模块之间并不是全部紧密联系的,大部分是可独立使用的。也就是说,我们可以单独使用Spring框架中的一个模块或几个模块。
动手写个很简单的spring_demo
1.使用myEclipse新建一个webproject,右键项目选择myecplise-project facets-install spring facet构建spring环境,导入spring包
2.新建SpringHello类
public class HelloSpring {
private String name;
public void print(){
System.out.println("hello"+name);
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.新建spring配置文件applicationContext.xml,property节点“name“为springhello类的name属性,必须有set方法,因为xml配置的bean是通过set方法为其赋值,这里赋值为“mySpring”
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
<bean name="hello" class="cn.spring.test.HelloSpring">
<property name="name" value="mySpring"></property>
</bean>
</beans>
4.编写测试类
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloSpring hs=(HelloSpring)context.getBean("hello");
hs.print();
}
}
其实装配bean有3种方式:
1、在XML中进行显式配置。
2、在Java中进行显式配置。
3、隐式的bean发现机制和自动装配(推荐)
平时项目都是在用spring+springmvc+mybatis框架,但是自己确实对原理掌握的不是很多,只会在上面写代码,但进步是要靠自己的自觉的,所以默默的从头再学习、复习一下,顺便自己写个简单的项目demo练习一下,再把平时看的一些技术集成进去,实践才是最好的老师!