使用Java的Spring框架编写第一个程序Hellow world

时间:2022-04-09 05:32:25

Spring框架是什么?
Spring是为企业Java最流行的应用程序开发框架。数以百万计的世界各地的开发人员使用Spring框架来创建高性能,易于测试的,可重用的代码。

Spring框架是一个开源的Java平台,它最初是由Rod Johnson编写并在2003年6月在Apache2.0许可下首次发布。

Spring是轻量级的,当涉及到大小和透明度。 spring框架的基本版本是大约2MB。

Spring框架的核心功能可以在任何Java应用程序中使用,但也有扩展的Java EE平台上构建Web应用程序。 Spring框架的目标,以使J2EE开发更容易使用,并且通过使基于POJO的编程模型,促进良好的编程习惯。

使用Spring框架的好处:
以下是一些使用Spring框架的极大的好处列表:

Spring 使开发人员使用POJO来开发企业级应用程序。仅使用POJO的好处是不需要EJB容器产品,如应用服务器,但必须只使用一个强大的servlet容器,如Tomcat 或某些商业产品的选择。

Spring 被组织在一个模块化的方式。虽然包和类的数量是巨大的,你只有担心那些需要的,而其它的就忽略了。

Spring不重新发明*,而是真正利用了一些像一些ORM框架,日志框架,JEE,Quartz和JDK定时器,其他视图技术的现有技术。

编写测试Spring的应用程序很简单,因为环境相关的代码被移动到这个框架中。此外,通过使用JavaBean风格的POJO,它变得更容易使用依赖注入注入测试数据。

Spring web框架是一个设计良好的Web MVC框架,它提供了一个很好的替代Web框架,如Struts或其他过度设计或不太流行的Web框架。

Spring提供了一个方便的API平移技术特定的异常(通过JDBC,Hibernate,或者JDO抛出,例如)成一致,未经检查的异常。

轻量级的IoC容器往往是轻量级的,尤其是相对EJB容器,例如。这有利于开发和有限的内存和CPU资源的计算机上部署应用程序。

Spring提供了一致的事务管理接口,可向下扩展到(使用一个单一的数据库,例如)本地事务并扩展到全局事务(使用JTA,例如)。

依赖注入(DI):
Spring最有确定的技术是依赖注入控制反转(DI)。控制反转(IoC)是一个笼统的概念,它可以表现在许多不同的方式和依赖注入仅仅是控制反转的一个具体的例子。

当编写一个复杂的Java应用程序,应用程序类应该尽可能独立其他Java类来增加重复使用这些类,并独立于其他类别的测试它们,而这样做单元测试的可能性。依赖注入有助于粘合这些类在一起,同时保持他们的独立。

什么是依赖注入是什么呢?让我们来看看这两个词分开。这里的依赖性部分转化为两个类之间的关联。例如,A类是依赖B类,现在,让我们来看看第二部分,注入。这一切都意味着,B类将由IOC注入到A类得到。

依赖注入可以将参数传递给构造函数的方式或使用后建设setter方法​​发生。依赖注入是Spring框架的核心,所以会在一个单独的章节,一个不错的例子解释这个概念。

面向切面编程(AOP):
Spring的一个关键组件是面向切面编程(AOP)框架。跨越多个点的应用程序的功能被称为横切关注点和这些横切关注点是从应用程序的业务逻辑概念上区分开来。有方面的各种常见很好的例子包括日志记录,声明性事务,安全性和高速缓存等。

模块化的OOP关键单元是类,而在AOP中模块化的单元则是切面。DI帮助您从彼此分离的应用程序对象,AOP可以帮助你消除来自他们影响的对象横切关注点。

Spring框架AOP模块提供了面向方面编程实现,允许您定义方法拦截器和切入点,以干净脱钩,实现的功能,应该分开代码。我将在单独的一章讨论Spring AOP的概念。


Hello World
让我们从实际编程中使用Spring框架。在开始编写使用Spring框架的第一个例子,你必须确保已经设置Spring环境。需要对Eclipse IDE有一点知识。

因此,让我们着手编写一个简单的Spring应用程序将打印 “Hello World!” 或基于Spring bean 配置文件来完成配置的其他信息。

第1步 - 创建Java项目:
第一步是使用Eclipse IDE 创建一个简单的Java项目。选项 File -> New -> Project 最后选择 Java Project 从向导列表向导。现在,项目命名为 HelloSpring 使用向导窗口,如下所示:

使用Java的Spring框架编写第一个程序Hellow world

项目创建成功后,将在 Project Explorer 看到下面的内容:

使用Java的Spring框架编写第一个程序Hellow world

第2步 - 添加必需的库:
第二步添加 Spring框架,并在我们的项目中通用的日志API库。要做到这一点,右键单击您的项目名称 HelloSpring 然后按照上下文菜单中提供以下选项: Build Path -> Configure Build Path 如下显示的Java 构建路径窗口:

使用Java的Spring框架编写第一个程序Hellow world

现在,使用Add External JARs 选项 Libraries 卡提供外部JAR按钮,添加从Spring框架和通用日志安装目录下面的核心JAR文件: 

  • antlr-runtime-3.0.1
  • org.springframework.aop-3.1.0.M2
  • org.springframework.asm-3.1.0.M2
  • org.springframework.aspects-3.1.0.M2
  • org.springframework.beans-3.1.0.M2
  • org.springframework.context.support-3.1.0.M2
  • org.springframework.context-3.1.0.M2
  • org.springframework.core-3.1.0.M2
  • org.springframework.expression-3.1.0.M2
  • commons-logging-1.1.1

第3步 - 创建源文件:
现在让我们根据实际创建的源文件 HelloSpring 项目。首先,我们需要创建一个名为包 com.yiibai. 要做到这一点,右键点击 src 在包资源管理部分,并按照选项:New -> Package.

下一步我们创建 HelloWorld.java 和 MainApp.java 在com.yiibai 包下文件。

使用Java的Spring框架编写第一个程序Hellow world

这里是 HelloWorld.java 的文件的内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
package com.yiibai;
 
public class HelloWorld {
  private String message;
 
  public void setMessage(String message){
   this.message = message;
  }
 
  public void getMessage(){
   System.out.println("Your Message : " + message);
  }
}

下面是第二个文件 MainApp.java 的内容:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package com.yiibai;
 
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
 
public class MainApp {
  public static void main(String[] args) {
   ApplicationContext context =
       new ClassPathXmlApplicationContext("Beans.xml");
 
   HelloWorld obj = (HelloWorld) context.getBean("helloWorld");
 
   obj.getMessage();
  }
}

有以下两个要点需要注意在主要程序中:

第一步是创建在这里我们使用框架API ClassPathXmlApplicationContext() 应用程序上下文。这个API加载 beans 的配置文件,并最终基于所提供的API,它需要创建并初始化所有的对象。在配置文件中提到的beans 类。

第二个步骤是用来使用创建的上下文的 getBean() 方法获得所需的bean。此方法使用 bean 的 id 返回,最终可以创建实际对象的通用对象。一旦有了对象,就可以使用这个对象调用任何类方法。

第4步 - 创建bean配置文件:
需要创建一个bean 配置文件,该文件是一个XML文件,并作为 cement 等类组合在一起。这个文件需要在src 目录下创建如下图所示:

使用Java的Spring框架编写第一个程序Hellow world

通常开发人员保留此文件的名称为 beans.xml 文件,但是必须为独立的,选择你喜欢的任何名称。必须确保这个文件在 CLASSPATH 中可用,并使用相同的名称在主应用程序而创建的应用程序上下文,如图MainApp.java文件。

在 beans.xml 中用于分配唯一的ID,以不同的 bean 和控制创造不同的值对象,而不会影响任何 Spring 的源文件。例如,使用下面的文件,可以通过为“message”变量的任何值,这样你就可以打印消息的不同的值,而不会影响的 HelloWorld.java 和 MainApp.java 文件。让我们来看看它是如何工作的:

?
1
2
3
4
5
6
7
8
9
10
11
12
<?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-3.0.xsd">
 
  <bean id="helloWorld" class="com.yiibai.HelloWorld">
    <property name="message" value="Hello World!"/>
  </bean>
 
</beans>

在Spring 应用程序被加载到内存中,框架利用了上面的配置文件来创建所有定义的 Bean,并在 <bean> 标记定义为它们分配一个唯一的 ID。您可以使用 <property> 标签来传递在创建对象时使用不同的变量的值。

第5步 - 运行程序:
创建源代码和 bean 配置文件来完成,准备好这一步是编译和运行程序。要做到这一点,保持 MainApp.Java 文件选项卡激活并使用在Eclipse IDE中提供 Run 选项,或使用Ctrl + F11可以编译并运行应用程序MainApp。如果一切顺利那么应用程序这将打印以下信息在 Eclipse IDE 控制台:

Your Message : Hello World!
恭喜,你已经创建了第一个Spring应用并成功执行。您可以通过更改“message”属性的值,并保持两者的源文件不变见上 Spring 应用程序的灵活性。