您的位置:首页 > 编程语言 > Java开发

1. 笔记JAVA框架学习——Spring入门环境搭建及helloworld

2017-11-07 23:25 1141 查看
1. 笔记JAVA框架学习——Spring入门环境搭建及helloworld
 

Spring简介

spring是J2EE应用程序框架,是轻量级的IoC和AOP的容器框架,主要是针对javaBean的生命周期进行管理的轻量级容器,可以单独使用,也可以和Struts框架,ibatis框架等组合使用。

1)IoC(Inversion of Control)控制反转,对象创建责任的反转,在spring中BeanFacotory是IoC容器的核心接口,负责实例化,定位,配置应用程序中的对象及建立这些对象间的依赖。XmlBeanFacotory实现BeanFactory接口,通过获取xml配置文件数据,组成应用对象及对象间的依赖关系。

spring中有三种注入方式,一种是set注入,一种是接口注入,另一种是构造方法注入。

 2)AOP面向切面编程

  aop就是纵向的编程,业务1和业务2都需要一个共同的操作,与其往每个业务中都添加同样的代码,不如写一遍代码,让两个业务共同使用这段代码。

 spring中面向切面变成的实现有两种方式,一种是动态代理,一种是CGLIB,动态代理必须要提供接口,而CGLIB实现是有继承。

Spring框架

如下图1



或者图2



组成 Spring 框架的每个模块(或组件)都可以单独存在,或者与其他一个或多个模块联合实现。每个模块的功能如下:

l  核心容器:核心容器提供Spring 框架的基本功能。核心容器的主要组件是 BeanFactory,它是工厂模式的实现。BeanFactory 使用控制反转(IOC)模式将应用程序的配置和依赖性规范与实际的应用程序代码分开。

l  Spring 上下文:Spring 上下文是一个配置文件,向 Spring 框架提供上下文信息。Spring 上下文包括企业服务,例如 JNDI、EJB、电子邮件、国际化、校验和调度功能。

l  Spring AOP:通过配置管理特性,Spring AOP 模块直接将面向方面的编程功能集成到了 Spring 框架中。所以,可以很容易地使 Spring 框架管理的任何对象支持 AOP。Spring AOP 模块为基于 Spring 的应用程序中的对象提供了事务管理服务。通过使用 Spring AOP,不用依赖 EJB 组件,就可以将声明性事务管理集成到应用程序中。

l  Spring DAO:JDBC DAO 抽象层提供了有意义的异常层次结构,可用该结构来管理异常处理和不同数据库供应商抛出的错误消息。异常层次结构简化了错误处理,并且极大地降低了需要编写的异常代码数量(例如打开和关闭连接)。Spring DAO 的面向 JDBC 的异常遵从通用的 DAO 异常层次结构。

l  Spring ORM:Spring 框架插入了若干个 ORM 框架,从而提供了 ORM 的对象关系工具,其中包括 JDO、Hibernate 和 iBatis SQL Map。所有这些都遵从Spring 的通用事务和 DAO 异常层次结构。

l  Spring Web 模块:Web 上下文模块建立在应用程序上下文模块之上,为基于 Web 的应用程序提供了上下文。所以,Spring 框架支持与 Jakarta Struts 的集成。Web 模块还简化了处理多部分请求以及将请求参数绑定到域对象的工作。

l  Spring MVC 框架:MVC 框架是一个全功能的构建 Web 应用程序的 MVC 实现。通过策略接口,MVC 框架变成为高度可配置的,MVC 容纳了大量视图技术,其中包括 JSP、Velocity、Tiles、iText 和 POI。

Spring 框架的功能可以用在任何 J2EE 服务器中,大多数功能也适用于不受管理的环境。Spring 的核心要点是:支持不绑定到特定 J2EE 服务的可重用业务和数据访问对象。毫无疑问,这样的对象可以在不同 J2EE 环境(Web 或 EJB)、独立应用程序、测试环境之间重用。

概念描述

rest

REST即表述性状态传递(英文:Representational State Transfer,简称REST)是RoyFielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,提高系统的可伸缩性。

目前在三种主流的Web服务实现方案中,因为REST模式的Web服务与复杂的SOAP和XML-RPC对比来讲明显的更加简洁,越来越多的web服务开始采用REST风格设计和实现。例如,Amazon.com提供接近REST风格的Web服务进行图书查找;雅虎提供的Web服务也是REST风格的。

Maven

Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。

Maven 除了以程序构建能力为特色之外,还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性,所以常常用两三行 Maven 构建脚本就可以构建简单的项目。由于 Maven 的面向项目的方法,许多 Apache Jakarta 项目发文时使用 Maven,而且公司项目采用 Maven 的比例在持续增长。

Maven这个单词来自于意第绪语(犹太语),意为知识的积累,最初在Jakata Turbine项目中用来简化构建过程。当时有一些项目(有各自Ant build文件),仅有细微的差别,而JAR文件都由CVS来维护。于是希望有一种标准化的方式构建项目,一个清晰的方式定义项目的组成,一个容易的方式发布项目的信息,以及一种简单的方式在多个项目中共享JARs。

common-logging

common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。当然,common-logging内部有一个Simple logger的简单实现,但是功能很弱。所以使用common-logging,通常都是配合着log4j来使用。使用它的好处就是,代码依赖是common-logging而非log4j,避免了和具体的日志方案直接耦合,在有必要时,可以更改日志实现的第三方库。

安装Spring插件

下载spring tool suite

http://spring.io/tools/sts/all/

然后在eclipse中进行安装:

Help->Install New Software…

点击Archive…

选择下载的spring tool suite

点击Open

然后点击OK。接着选择xxx/Spring IDE

点击Next,点击Finish,接受协议,重启eclipse.

Spring 下HelloWord

新建一个java项目

在项目中新建一个lib文件夹

将commons-logging-1.2.jar复制到lib文件夹。(commons-logging-1.2.jar 下载链接请见友情链接处)

将spring-framework(下载地址:https://github.com/spring-projects/spring-framework/)中必须的jar包(spring-beans-4.3.2.RELEASE.jar,spring-context-4.3.2.RELEASE.jar,spring-core-4.3.2.RELEASE.jar,spring-expression-4.3.2.RELEASE.jar)放到lib下。然后编译一下即可。

在ECLIPSE中选中所有lib,然后右键选中Build path->add to build path.

创建一个Main.java

publicclass Main {
      publicstaticvoid
main(String[]args) {
            //1. 创建 Spring
的 IOC
容器

      ApplicationContextapx = new ClassPathXmlApplicationContext("app.xml");

            //2.从 IOC
容器中获取 bean
的实例

            HelloWorldhelloWorld=(HelloWorld)apx.getBean("helloWorld");

            //调用hello方法

            helloWorld.hello();    



}

创建一个HelloWorld.java

publicclass HelloWorld {
      public String
name;
      publicvoidsetName(String
name){
            this.name
= name;
      }
      publicvoid hello(){
            System.out.println("Hello:
" + name);
      }
     
}

然后右键创建Spring Bean Configuration File

定义名字为app.xml

然后配置app.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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd">
      <!--
配置一个 bean -->
      <bean
id="helloWorld"class="HelloWorld">
            <!--
为属性赋值-->
            <property
name="name"value="Jerry"></property>
      </bean>
</beans>
灰色底的为加入部分。

这样运行即可,Spring的环境搭建完成了。

友情链接

Building JavaProjects with Maven

http://spring.io/guides/gs/maven/

Getting StartedGuides

http://spring.io/guides

Eclipse的Tomcat插件

http://marketplace.eclipse.org/content/eclipse-tomcat-plugin

Spring Tool suite

http://spring.io/tools/sts/all/

commons-logging

http://commons.apache.org/proper/commons-logging/

spring-framework

https://github.com/spring-projects/spring-framework/

或者

http://repo.springsource.org/release/org/springframework/spring/

官网

http://projects.spring.io/spring-framework/#quick-start
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: