(一)Spring4.0初步认识
2016-06-30 10:46
453 查看
1.什么是spring框架
spring框架是一个轻量级的Java EE框架。所谓轻量级,是指不依赖容器就能运行的。struts和hibernate也是轻量级的。
Spring 是一个 IOC(DI) 和 AOP 容器框架.
spring最主要的思想是ioc(Inversion of Control,控制反转)或者成为DI(Dependency Injection,依赖注入)
具体描述 Spring:
–轻量级:Spring
是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
–依赖注入(DI ---dependency injection、IOC)
–面向切面编程(AOP ---aspect oriented programming)
–容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
–框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
–一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 SpringJDBC)
2.搭建spring开发环境
2.1 spring4.0jar包的引入
spring最基本的jar包有
spring-expression-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
commons-logging-1.1.1.jar
上面是spring最基本的jar包,下面会贴出其它jar包和该jar包的作用。引入这几个jar包并添加到类路径中。
2.2 spring的配置文件
一个典型的 Spring 项目需要创建一个或多个 Bean 配置文件, 这些配置文件用于在Spring IOC 容器里配置 Bean. Bean 的配置文件可以放在classpath下, 也可以放在其它目录下.
3.一个依赖注入的简单例子
3.1普通的java例子
编写一个HelloWorld类
编写一个main
以上是我们不适用spring时的方法
3.2使用spring的例子
首先配置spring的配置文件,该配置文件命名为applicationContext.xml,同时放在类路径下面
重新编写Main
如果把上面的Main类中的2和3步骤去掉,会发现创建springIOC容器的时候,会初始化类的构造函数并个set方法赋值。
由上面两个对比可知,spring来创建这个HelloWorld类,然后通过spring容器来获取创建的类调用它的方法。
这就是spring的依赖注入的思想。
下面是spring的jar包的介绍
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现
Spring Aspects:Spring提供的对AspectJ框架的整合
Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。
Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。
Spring Context Support:Spring context的扩展支持,用于MVC方面。
Spring Core:Spring的核心工具包
Spring expression:Spring表达式语言
Spring Framework Bom:
Spring
af58
Instrument:Spring对服务器的代理接口
Spring Instrument Tomcat:Spring对tomcat连接池的集成
Spring JDBC:对JDBC 的简单封装
Spring JMS:为简化jms api的使用而做的简单封装
Spring Messaging:
Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
Spring test:对JUNIT等测试框架的简单封装
Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
Spring webmvc:包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
Spring webmvc portlet:Spring MVC的增强
spring框架是一个轻量级的Java EE框架。所谓轻量级,是指不依赖容器就能运行的。struts和hibernate也是轻量级的。
Spring 是一个 IOC(DI) 和 AOP 容器框架.
spring最主要的思想是ioc(Inversion of Control,控制反转)或者成为DI(Dependency Injection,依赖注入)
具体描述 Spring:
–轻量级:Spring
是非侵入性的 - 基于 Spring 开发的应用中的对象可以不依赖于 Spring 的 API
–依赖注入(DI ---dependency injection、IOC)
–面向切面编程(AOP ---aspect oriented programming)
–容器: Spring 是一个容器, 因为它包含并且管理应用对象的生命周期
–框架: Spring 实现了使用简单的组件配置组合成一个复杂的应用. 在 Spring 中可以使用 XML 和 Java 注解组合这些对象
–一站式:在 IOC 和 AOP 的基础上可以整合各种企业应用的开源框架和优秀的第三方类库 (实际上 Spring 自身也提供了展现层的 SpringMVC 和 持久层的 SpringJDBC)
2.搭建spring开发环境
2.1 spring4.0jar包的引入
spring最基本的jar包有
spring-expression-4.0.0.RELEASE.jar
spring-core-4.0.0.RELEASE.jar
spring-context-4.0.0.RELEASE.jar
spring-beans-4.0.0.RELEASE.jar
commons-logging-1.1.1.jar
上面是spring最基本的jar包,下面会贴出其它jar包和该jar包的作用。引入这几个jar包并添加到类路径中。
2.2 spring的配置文件
一个典型的 Spring 项目需要创建一个或多个 Bean 配置文件, 这些配置文件用于在Spring IOC 容器里配置 Bean. Bean 的配置文件可以放在classpath下, 也可以放在其它目录下.
3.一个依赖注入的简单例子
3.1普通的java例子
编写一个HelloWorld类
package com.beans; public class HelloWorld { private String name; public void setName(String name) { this.name = name; } public void hello(){ System.out.println("hello:" + name); } }这个类有一个属性name,提供了set方法,并有一个hello()方法。
编写一个main
package com.beans; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub HelloWorld helloWorld = new HelloWorld();//创建HelloWorld对象 helloWorld.setName("Spring");//为name属性赋值 helloWorld.hello(); } }输出 hello:Spring
以上是我们不适用spring时的方法
3.2使用spring的例子
首先配置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.xsd"> <!-- class指的是要使用的类,id标识该类 --> <bean id="helloWorld" class="com.beans.HelloWorld"> <!-- name值得是该类set后面的参数 如 本例中是setName 那么name="name" 如果是setName2,那么name="name2" 否则会报错 value属性则是设置的值--> <property name="name" value="spring1"></property> </bean> </beans>
重新编写Main
package com.beans; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Main { public static void main(String[] args) { //1.创建spring的IOC容器 ApplicationContext applicationContext=new ClassPathXmlApplicationContext("applicationContext.xml"); //2.从IOC容器中获取bean实例 HelloWorld helloWorld=(HelloWorld) applicationContext.getBean("helloWorld"); //3.调用hello方法 helloWorld.hello(); } }输出 hello:spring1
如果把上面的Main类中的2和3步骤去掉,会发现创建springIOC容器的时候,会初始化类的构造函数并个set方法赋值。
由上面两个对比可知,spring来创建这个HelloWorld类,然后通过spring容器来获取创建的类调用它的方法。
这就是spring的依赖注入的思想。
下面是spring的jar包的介绍
Spring AOP:Spring的面向切面编程,提供AOP(面向切面编程)的实现
Spring Aspects:Spring提供的对AspectJ框架的整合
Spring Beans:Spring IOC的基础实现,包含访问配置文件、创建和管理bean等。
Spring Context:在基础IOC功能上提供扩展服务,此外还提供许多企业级服务的支持,有邮件服务、任务调度、JNDI定位,EJB集成、远程访问、缓存以及多种视图层框架的支持。
Spring Context Support:Spring context的扩展支持,用于MVC方面。
Spring Core:Spring的核心工具包
Spring expression:Spring表达式语言
Spring Framework Bom:
Spring
af58
Instrument:Spring对服务器的代理接口
Spring Instrument Tomcat:Spring对tomcat连接池的集成
Spring JDBC:对JDBC 的简单封装
Spring JMS:为简化jms api的使用而做的简单封装
Spring Messaging:
Spring orm:整合第三方的orm实现,如hibernate,ibatis,jdo以及spring 的jpa实现
Spring oxm:Spring对于object/xml映射的支持,可以让JAVA与XML之间来回切换
Spring test:对JUNIT等测试框架的简单封装
Spring tx:为JDBC、Hibernate、JDO、JPA等提供的一致的声明式和编程式事务管理。
Spring web:包含Web应用开发时,用到Spring框架时所需的核心类,包括自动载入WebApplicationContext特性的类、Struts与JSF集成类、文件上传的支持类、Filter类和大量工具辅助类。
Spring webmvc:包含SpringMVC框架相关的所有类。包含国际化、标签、Theme、视图展现的FreeMarker、JasperReports、Tiles、Velocity、XSLT相关类。当然,如果你的应用使用了独立的MVC框架,则无需这个JAR文件里的任何类。
Spring webmvc portlet:Spring MVC的增强
相关文章推荐
- Eclipse 安装Web Service、Axis2插件
- struts自定义验证规则
- spring使用模板发送邮件
- 深入理解Java:注解(Annotation)--注解处理器
- 使用JDK开发WebService
- 华为机试---二维数组打印
- 基于SpringAop 的统一验证
- Spring 定时任务
- 深入理解Java:注解(Annotation)基本概念
- JAVA volatile关键字解析
- token
- java中的代码块
- java 计算String的ASCII码
- 各种 Java Thread State 第一分析法则
- 深入理解Java:注解(Annotation)自定义注解入门
- Java实现KMP算法
- Reason: Failed while changing version of java to 1.7
- 二叉树的非递归遍历的解析与实现----java实现
- 常见类的基本使用
- Java编程中“为了性能”尽量要做到的一些地方