Spring配置与使用
Spring配置与使用
一.Spring概述
①概述
Spring 是最受欢迎的企业级 Java 应用程序开发框架,数以百万的来自世界各地的开发人员使用 Spring 框架来创建性能好、易于测试、可重用的代码。
Spring 框架是一个开源的 Java 平台,它最初是由 Rod Johnson 编写的,并且于 2003 年 6 月首次在 Apache 2.0 许可下发布。
Spring 是轻量级的框架,其基础版本只有 2 MB 左右的大小。
Spring 框架的核心特性是可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。
②使用 Spring 框架的好处
-
-
Spring 可以使开发人员使用 POJOs 开发企业级的应用程序。只使用 POJOs 的好处是你不需要一个 EJB 容器产品,比如一个应用程序服务器,但是你可以选择使用一个健壮的 servlet 容器,比如 Tomcat 或者一些商业产品。
-
Spring 在一个单元模式中是有组织的。即使包和类的数量非常大,你只要担心你需要的,而其它的就可以忽略了。
-
Spring 不会让你白费力气做重复工作,它真正的利用了一些现有的技术,像ORM 框架、日志框架、JEE、Quartz 和 JDK 计时器,其他视图技术。
-
测试一个用 Spring 编写的应用程序很容易,因为环境相关的代码被移动到这个框架中。此外,通过使用 JavaBean-style POJOs,它在使用依赖注入注入测试数据时变得更容易。
-
Spring 的 web 框架是一个设计良好的 web MVC 框架,它为比如 Structs 或者其他工程上的或者不怎么受欢迎的 web 框架提供了一个很好的供替代的选择。MVC模式导致应用程序的不同方面(输入逻辑,业务逻辑和UI逻辑)分离,同时提供这些元素之间的松散耦合。
- 模型(Model)封装了应用程序数据,通常它们将由POJO类组成。
- 视图(View)负责渲染模型数据,一般来说它生成客户端浏览器可以解释HTML输出。
- 控制器(Controller)负责处理用户请求并构建适当的模型,并将其传递给视图进行渲染。
-
Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低。
-
轻量级的 IOC 容器往往是轻量级的,例如,特别是当与 EJB 容器相比的时候。这有利于在内存和 CPU 资源有限的计算机上开发和部署应用程序。
- Spring提供了一致的事务管理接口,可向下扩展到(使用一个单一的数据库,例如)本地事务并扩展到全局事务(例如,使用 JTA)。
-
③Spring体系结构
Spring 有可能成为所有企业应用程序的一站式服务点,然而,Spring 是模块化的,允许你挑选和选择适用于你的模块,不必要把剩余部分也引入。下面的部分对在 Spring 框架中所有可用的模块给出了详细的介绍。
Spring 框架提供约 20 个模块,可以根据应用程序的要求来使用。
二.配置与使用
①创建一个简单的Java项目。
②添加必要的库。
添加 Spring 框架和通用的日志 API 库到我们的项目中:
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
③创建源文件。
首先,我们需要创建一个名为 com.tutorialspoint 的包。在 package explore 区域中的 src 上点击右键,并按照选项:New -> Package。
接下来,我们在包 com.tutorialspoint 下创建 HelloWorld.java 和 MainApp.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 }
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 }
关于主要程序有以下两个要点需要注意:
1.第一步是我们使用框架 API ClassPathXmlApplicationContext() 来创建应用程序的上下文。这个 API 加载 beans 的配置文件并最终基于所提供的 API,它处理创建并初始化所有的对象,即在配置文件中提到的 beans。
2.第二步是使用已创建的上下文的 getBean() 方法来获得所需的 bean。这个方法使用 bean 的 ID 返回一个最终可以转换为实际对象的通用对象。一旦有了对象,你就可以使用这个对象调用任何类的方法。
④创建bean配置文件。
你需要创建一个 Bean 的配置文件,该文件是一个 XML 文件,并且作为粘合 bean 的粘合剂即类。这个文件需要在 src 目录下创建:
Beans.xml 用于给不同的 bean 分配唯一的 ID,并且控制不同值的对象的创建,而不会影响 Spring 的任何源文件。例如,使用下面的文件,你可以为 “message” 变量传递任何值,因此你就可以输出信息的不同值,而不会影响的 HelloWorld.java和MainApp.java 文件。
1 <?xml version="1.0" encoding="UTF-8"?> 2 3 <beans xmlns="http://www.springframework.org/schema/beans" 4 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 5 xsi:schemaLocation="http://www.springframework.org/schema/beans 6 http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 7 8 <bean id="helloWorld" class="com.tutorialspoint.HelloWorld"> 9 <property name="message" value="Hello World!"/> 10 </bean> 11 12 </beans>
当 Spring 应用程序被加载到内存中时,框架利用了上面的配置文件来创建所有已经定义的 beans,并且按照标签的定义为它们分配一个唯一的 ID。你可以使用标签来传递在创建对象时使用不同变量的值。
⑤运行。
一旦你完成了创建源代码和 bean 的配置文件后,就可以准备编译和运行你的程序了。为了做到这个,请保持 MainApp.Java 文件标签是有效的,并且在 Eclipse IDE 中使用可用的 Run 选项,或使用 Ctrl + F11 编译并运行你的应用程序 MainApp。如果你的应用程序一切都正常,将在 Eclipse IDE 控制台打印以下信息:
参考:https://www.w3cschool.cn/wkspring/pesy1icl.html