Discuz! Board

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: java
打印 上一主题 下一主题

spring学习笔记

[复制链接]

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
地板
 楼主| 发表于 2017-6-22 10:56:55 | 只看该作者
Spring Hello World 实例
让我们使用 Spring 框架开始实际的编程。在你开始使用 Spring 框架编写第一个例子之前,你必须确保已经正确地设置了 Spring 环境,正如在 Spring——环境设置 教程中如所说的。假设你有了解一些有关 Eclipse IDE 工作的知识。
因此,让我们继续编写一个简单的 Spring 应用程序,它将根据在 Spring Beans 配置文件中配置的信息输出 “Hello World!” 或其他信息。
第 1 步:创建 Java 项目
第一步是使用 Eclipse IDE 创建一个简单的 Java 项目。按照选项 File -> New -> Project,最后从向导列表中选择 Java Project 向导。现在,使用向导窗口将你的项目命名为 HelloSpring,如下所示:
一旦你的项目创建成功后,将在 Project Explorer 看到下面的内容:
第 2 步:添加必需的库
第二步让我们添加 Spring 框架和通用的日志 API 库到我们的项目中。为了做到这个,在你的项目名称 HelloSpring 上单击右键,然后在快捷菜单上按照下面可用的选项:Build Path -> Configure Build Path 显示 Java 构建路径窗口,如下所示:
现在,在 Libraries 标签中使用可用的 Add External JARs 按钮,添加从 Spring 框架和通用日志安装目录下面的核心 JAR 文件:
  • commons-logging-1.1.1
  • spring-aop-4.1.6.RELEASE
  • spring-aspects-4.1.6.RELEASE
  • spring-beans-4.1.6.RELEASE
  • spring-context-4.1.6.RELEASE
  • spring-context-support-4.1.6.RELEASE
  • spring-core-4.1.6.RELEASE
  • spring-expression-4.1.6.RELEASE
  • spring-instrument-4.1.6.RELEASE
  • spring-instrument-tomcat-4.1.6.RELEASE
  • spring-jdbc-4.1.6.RELEASE
  • spring-jms-4.1.6.RELEASE
  • spring-messaging-4.1.6.RELEASE
  • spring-orm-4.1.6.RELEASE
  • spring-oxm-4.1.6.RELEASE
  • spring-test-4.1.6.RELEASE
  • spring-tx-4.1.6.RELEASE
  • spring-web-4.1.6.RELEASE
  • spring-webmvc-4.1.6.RELEASE
  • spring-webmvc-portlet-4.1.6.RELEASE
  • spring-websocket-4.1.6.RELEASE
第 3 步:创建源文件
现在让我们在 HelloSpring 项目下创建实际的源文件。首先,我们需要创建一个名为 com.tutorialspoint 的包。为了做到这个,在 package explore 区域中的 src 上点击右键,并按照选项:New -> Package
接下来,我们在包 com.tutorialspoint 下创建 HelloWorld.javaMainApp.java 文件。
这里是 HelloWorld.java 文件的内容:
  1. package com.tutorialspoint;
  2. public class HelloWorld {
  3.    private String message;
  4.    public void setMessage(String message){
  5.       this.message  = message;
  6.    }
  7.    public void getMessage(){
  8.       System.out.println("Your Message : " + message);
  9.    }
  10. }
复制代码
下面是第二个文件 MainApp.java 的内容:
  1. package com.tutorialspoint;
  2. import org.springframework.context.ApplicationContext;
  3. import org.springframework.context.support.ClassPathXmlApplicationContext;
  4. public class MainApp {
  5.    public static void main(String[] args) {
  6.       ApplicationContext context =
  7.              new ClassPathXmlApplicationContext("Beans.xml");
  8.       HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
  9.       obj.getMessage();
  10.    }
  11. }
复制代码
关于主要程序有以下两个要点需要注意:
  • 第一步是我们使用框架 API ClassPathXmlApplicationContext() 来创建应用程序的上下文。这个 API 加载 beans 的配置文件并最终基于所提供的 API,它处理创建并初始化所有的对象,即在配置文件中提到的 beans。
  • 第二步是使用已创建的上下文的 getBean() 方法来获得所需的 bean。这个方法使用 bean 的 ID 返回一个最终可以转换为实际对象的通用对象。一旦有了对象,你就可以使用这个对象调用任何类的方法。
第 4 步:创建 bean 的配置文件
你需要创建一个 Bean 的配置文件,该文件是一个 XML 文件,并且作为粘合 bean 的粘合剂即类。这个文件需要在 src 目录下创建,如下图所示:
通常开发人员保存该文件的名称为 Beans.xml 文件,但是你可以单独选择你喜欢的任何名称。你必须确保这个文件在 CLASSPATH 中是可用的,并在主应用程序中使用相同的名称,而在 MainApp.java 文件中创建应用程序的上下文,如图所示。
Beans.xml 用于给不同的 bean 分配唯一的 ID,并且控制不同值的对象的创建,而不会影响 Spring 的任何源文件。例如,使用下面的文件,你可以为 “message” 变量传递任何值,因此你就可以输出信息的不同值,而不会影响的 HelloWorld.java和MainApp.java 文件。让我们来看看它是如何工作的:

  1. <?xml version="1.0" encoding="UTF-8"?>

  2. <beans xmlns="http://www.springframework.org/schema/beans"
  3.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.     xsi:schemaLocation="http://www.springframework.org/schema/beans
  5.     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

  6.    <bean id="helloWorld" class="com.tutorialspoint.HelloWorld">
  7.        <property name="message" value="Hello World!"/>
  8.    </bean>

  9. </beans>
复制代码
当 Spring 应用程序被加载到内存中时,框架利用了上面的配置文件来创建所有已经定义的 beans,并且按照 标签的定义为它们分配一个唯一的 ID。你可以使用 标签来传递在创建对象时使用不同变量的值。
第 5 步:运行程序
一旦你完成了创建源代码和 bean 的配置文件后,准备好下一步编译和运行你的程序。为了做到这个,请保持 MainApp.Java 文件标签是有效的,并且在 Eclipse IDE 中使用可用的 Run 选项,或使用 Ctrl + F11 编译并运行你的应用程序 MainApp。如果你的应用程序一切都正常,将在 Eclipse IDE 控制台打印以下信息:
Your Message : Hello World!
祝贺,你已经成功地创建了你的第一个 Spring 应用程序。通过更改 “message” 属性的值并且保持两个源文件不变,你可以看到上述 Spring 应用程序的灵活性。下一步,我们开始在接下来的几个章节中做一些更有趣的事情。
https://www.w3cschool.cn/wkspring/dgte1ica.html


回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
板凳
 楼主| 发表于 2017-6-22 10:17:55 | 只看该作者
本帖最后由 java 于 2017-6-22 10:19 编辑

Spring 环境配置
https://www.w3cschool.cn/wkspring/f6pk1ic8.html
环境设置

本教程将指导你如何准备开发环境来使用 Spring 框架开始你的工作。本教程还将教你在安装 Spring 框架之前如何在你的机器上安装 JDK,Tomcat 和 Eclipse。
第 1 步:安装 Java 开发工具包(JDK)

你可以从 Oracle 的 Java 网站 Java SE Downloads 下载 SDK 的最新版本。你会在下载的文件中找到教你如何安装 JDK 的说明,按照给出的说明安装和配置 JDK 的设置。最后,设置 PATH 和 JAVAHOME 环境变量,引入包含 java 和 javac 的目录,通常分别为 java install dir/bin 和 java install _ dir。
如果你运行的是Windows,并在C:\jdk1.6.0_15上安装了JDK,你就可以把下面这行写入C:\autoexec.bat文件中。
set PATH=C:\jdk1.6.0_15\bin;%PATH%
set JAVA_HOME=C:\jdk1.6.0_15
或者,在 Windows XP/7/8 中,你也可以右键单击“我的电脑”,选择“属性”,然后是“高级”,然后是“环境变量”。接下来,你将更新 PATH 值,并且按下 OK 按钮。
在 Unix(Solaris、Linux 等等)上,如果在 /usr/local/jdk1.6.0_15 上安装 SDK,并且使用 C shell 命令,你将把下面的内容添加到 .cshrc 文件中。
setenv PATH /usr/local/jdk1.6.0_15/binPATH
setenv JAVA_HOME /usr/local/jdk1.6.0_15
或者,如果你使用集成开发环境(IDE),如 Borland JBuilder,Eclipse,IntelliJ IDEA 或者 Sun ONE Studio,编译和运行一个简单的程序,用来确认 IDE 知道你安装了 Java,否则应该根据 IDE 给定的文档做正确的设置。
第 2 步:安装 Apache Commons Logging API

你可以从 http://commons.apache.org/logging/ 下载 Apache Commons Logging API 的最新版本。一旦你下载完安装包,并且解压二进制的发行版本到一个方便的位置。例如在 windows 上的 C:\commons-logging-1.1.1 中,或在 Linux/Unix 上的 /usr/local/commons-logging-1.1.1 中。该目录将有如下的 jar 文件和其他支持的文件等。
确保你在这个目录上正确的设置 CLASSPATH 变量,否则你将会在运行应用程序时遇到问题。
第 3 步:安装 Eclipse IDE
本教程中的所有例子使用 Eclipse IDE 编写。所以我建议你应该在你的机器上安装 Eclipse 的最新版本。
为了安装 Eclipse IDE,从 http://www.eclipse.org/downloads/ 上下载最新的 Eclipse 二进制文件。一旦你下载完安装包,并且解压二进制的发行版本到一个方便的位置。例如在 windows 上的 C:\eclipse 中,或在 Linux/Unix 上的 /usr/local/eclipse 中,最后恰当的设置 PATH 变量。
在 Windows 机器上,可以通过执行以下命令启动 Eclipse,或者可以简单地双击 eclipse.exe。
%C:\eclipse\eclipse.exe
在 Unix(Solaris 和 Linux 等)上,可以通过执行下面的命令启动 Eclipse:
$/usr/local/eclipse/eclipse
启动成功后,如果一切正常,它应该显示下面的结果:

第 4 步:安装 Spring 框架库
现在如果一切正常,你就可以继续设置你的 Spring 框架。下面是在你的机器上下载并安装框架的简单步骤。
  • 选择是要在 Windows 还是在 UNIX 上安装 Spring,然后继续进行下一个步骤,在 Windows 上下载 .zip 文件,而在 Unix 上下载 .tz 文件。
  • http://repo.spring.io/release/org/springframework/spring 下载最新版本的 Spring 框架的二进制文件。
  • 在写本教程的时候,我在我的 Windows 机器上下载了 spring-framework-4.1.6.RELEASE-dist.zip,当你解压缩下载的文件时,它内置的目录结构为 E:\spring,如下所示。
你会在目录 E:\spring\libs 中发现所有的 Spring 库。确保你在这个目录上正确的设置 CLASSPATH 变量,否则你将会在运行应用程序时遇到问题。如果使用的是 Eclipse,就不需要设置 CLASSPATH,因为所有的设置将通过 Eclipse 完成。
一旦你完成了最后一步后,你就可以继续你的第一个 Spring 例子,你将会在下一章中看到。



回复 支持 反对

使用道具 举报

697

主题

1142

帖子

4086

积分

认证用户组

Rank: 5Rank: 5

积分
4086
沙发
 楼主| 发表于 2017-6-22 09:39:40 | 只看该作者
本帖最后由 java 于 2017-6-22 10:05 编辑

Spring 体系结构体系结构
Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。
Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
核心容器
核心容器由核心,Bean,上下文和表达式语言模块组成,它们的细节如下:
  • 核心模块提供了框架的基本组成部分,包括 IoC 和依赖注入功能。
  • Bean 模块提供 BeanFactory,它是一个工厂模式的复杂实现。
  • 上下文模块建立在由核心和 Bean 模块提供的坚实基础上,它是访问定义和配置的任何对象的媒介。ApplicationContext 接口是上下文模块的重点。
  • spEl表达式语言模块(Spring表达式语言 Spring Expression Language)在运行时提供了查询和操作一个对象图的强大的表达式语言。
数据访问/集成
数据访问/集成层包括 JDBC,ORM,OXM,JMS 和事务处理模块,它们的细节如下:
  • JDBC 模块提供了删除冗余的 JDBC 相关编码的 JDBC 抽象层。
  • ORM 模块(对象关系映射 Object Relational Mapping)为流行的对象关系映射 API,包括 JPA,JDO,Hibernate 和 iBatis,提供了集成层。
  • OXM 模块提供了抽象层,它支持对 JAXB,Castor,XMLBeans,JiBX 和 XStream 的对象/XML 映射实现。[]
  • Java 消息服务 JMS 模块包含生产和消费的信息的功能。
  • 事务模块为实现特殊接口的类及所有的 POJO 支持编程式和声明式事务管理。
Web
Web 层由 Web,Web-MVC,Web-Socket 和 Web-Portlet 组成,它们的细节如下:
  • Web 模块提供了基本的面向 web 的集成功能,例如多个文件上传的功能和使用 servlet 监听器和面向 web 应用程序的上下文来初始化 IoC 容器。
  • Web-MVC 模块包含 Spring 的模型-视图-控制器(MVC),实现了 web 应用程序。
  • Web-Socket 模块为 WebSocket-based 提供了支持,而且在 web 应用程序中提供了客户端和服务器端之间通信的两种方式。
  • Web-Portlet 模块提供了在 portlet 环境中实现 MVC,并且反映了 Web-Servlet 模块的功能。
其他
还有其他一些重要的模块,像 AOP,Aspects,Instrumentation,Web 和测试模块,它们的细节如下:
  • AOP 模块提供了面向方面的编程实现,允许你定义方法拦截器和切入点对代码进行干净地解耦,它实现了应该分离的功能。
  • Aspects 模块提供了与 AspectJ 的集成,这是一个功能强大且成熟的面向切面编程(AOP)框架。
  • Instrumentation 模块在一定的应用服务器中提供了类 instrumentation 的支持和类加载器的实现。
  • Messaging 模块为 STOMP 提供了支持作为在应用程序中 WebSocket 子协议的使用。它也支持一个注解编程模型,它是为了选路和处理来自 WebSocket 客户端的 STOMP 信息。
  • 测试模块支持对具有 JUnit 或 TestNG 框架的 Spring 组件的测试。



注:
----------OXM------------------
O/X Mapper O/X 映射器.  O 代表 Object,X 代表 XML. 它的目的是在 Java 对象(几乎总是一个 plain old Java object,或简写为 POJO)和 XML 文档之间来回转换。
编组(marshalling) 也称为序列化(serializing):将 Java bean 转换成 XML 文档的过程,这意味着 Java bean 的所有字段和字段值都将作为 XML 元素或属性填充到 XML 文件中。
解组(unmarshalling) 也称为反序列化(deserializing):将 XML 文档转换为 Java bean,这意味着 XML 文档的所有元素或属性都作为 Java 字段填充到 Java bean 中。

-----------------STOMP--------------------
STOMP即Simple (or Streaming) Text Orientated Messaging Protocol,简单(流)文本定向消息协议,它提供了一个可互操作的连接格式,允许STOMP客户端与任意STOMP消息代理(Broker)进行交互。STOMP协议由于设计简单,易于开发客户端,因此在多种语言和多种平台上得到广泛地应用。



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|firemail ( 粤ICP备15085507号-1 )

GMT+8, 2024-6-30 13:19 , Processed in 0.059945 second(s), 16 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表