Spring-(1)HelloSpring

来源:互联网 发布:网络兼职公司 编辑:程序博客网 时间:2024/05/21 09:13

Spring-(1)HelloSpring

   首先介绍一下Spring,Spring 是最受欢迎的企业级 Java 应用程序开发框架。数以百万的来自世界各地的开发人员使用 Spring 框架来创建好性能、易于测试、可重用的代码。其次,Spring 是轻量级的,Spring 框架是一个开源的 Java 平台,  Spring 框架的基础版本是在 2 MB 左右的。   Spring 框架的核心特性可以用于开发任何 Java 应用程序,但是在 Java EE 平台上构建 web 应用程序是需要扩展的。 Spring 框架的目标是使 J2EE 开发变得更容易使用,通过启用基于 POJO 编程模型来促进良好的编程实践。

此文章建议有一定Java EE基础的程序员学习,本人也是第一次接触Spring,如有写得不正确的地方,希望大家踊跃指出。

先说一下Spring的核心基础三个概念:

  • IOC:Inversion of Control,即“控制反转”,这并不是什么技术,而是一种设计思想,控制反转的意思是将控制权交出去,例如平常我们需要一个对象一般都是new一个,而用了Spring IOC后,我们就会将new对象的操作交给IOC容器,从而省去很多麻烦,这就是将控制权交给IOC容器,即“控制反转”,讲到IOC(控制反转)那一定要了解DI(依赖注入)的使用;

  • DI:Dependency Injection,即“依赖注入”,依赖注入可以有高效的解耦合的能力。可以说,依赖注入仅仅是控制反转的一个具体的例子,当编写一个复杂的 Java 应用程序时,应用程序类应该尽可能的独立于其他的 Java 类来增加这些类可重用的可能性,当进行单元测试时,可以使它们独立于其他类进行测试。依赖注入有助于将这些类粘合在一起,并且在同一时间让它们保持独立。我们将这两个部分拆开来理解,依赖的关系就像是类里面套着另一个类,例如车店是一个类,车店类里面有一个属性是车主类,那么车店类就依赖了车主类,这就是依赖关系,那注入的意思是车主类通过IOC容器注入到车店,这个地方我没有过细的讲,在以后我会再详细的说明的,目前就先做一个了解!

  • AOP:Aspect Oriented Programming,意思是“面向切面编程”,我们以前了解的很多都是面向对象编程(OOP),而面向切面编程会解决很多问题,需要说明的一点是,AOP只是OOP的一个补充,传统的编程都是纵向编程,而AOP则是进行横向编程,AOP独立于应用程序的业务逻辑,就像servlet过滤器和servlet监听器一样,它可以处理一些每次都需要操作但又很繁琐的事情,比如日志记录、声明性事务、安全性,和缓存等等。

这就是Spring的核心基础,在这里我也只是简单的写了一点我的基本认识,如果有机会,我会再把上述内容再详细的写一遍。


现在我们来自己动手写一个入门Demo
首先我们创建一个Demo项目示例
这里写图片描述

我这边创建了一个HelloSpring的Demo,然后我们导入相应的包
这里我们要用到Spring的jar包,Spring的jar包可以到Spring的官网下载
附上官网链接
https://spring.io/
http://projects.spring.io/spring-framework/
这里是需要导入的jar包(提示:第一个包是要自己下的,百度可以搜到。 PS:不是给百度打广告)
这里写图片描述

导入jar包后就开始写Demo了


这是上图中的HelloSpring的类里面的全部内容,我就不一一打了(任性,直接复制粘贴)。

public class HelloSpring {    private String message;    public String getMessage() {        return message;    }    public void setMessage(String message) {        this.message = message;    }}

这个是做测试用到的main方法,鉴于可能有人不会用Junit,所以就用main方法做测试,反正也是一样杠杠的。这里用到的ApplicationContext 暂时不需要详细了解,仅仅知道它可以读取xml文件即可。

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");        HelloSpring hSpring = (HelloSpring) context.getBean("helloSpring");        System.out.println(hSpring.getMessage());    }}

特别说明一下,这个是xml文件,是对Spring做配置用的,beans … 尖括号里面的内容目前不需要做太多了解,但是我们需要了解bean的用法,bean的id是作为一个唯一的标识(相当于name),标识出它所对应的class类,而class就是所对应的类(此类需要写全限定名称),bean里面有一个property属性,property属性指定的是class类里面的属性,这里的property是将com.tbspring.HelloSpring类中的message属性赋值“Hello Spring !”字符串(注意:property的赋值方式是运用setter方法赋值注入(还有一种是通过构造器方法注入,用得比较少,以后可能讲到))

<?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-4.3.xsd">    <bean id="helloSpring" class="com.tbspring.HelloSpring">        <property name="message" value="Hello Spring !"></property>    </bean></beans>

运行main方法
如果控制台打印出“Hello Spring !”则表示Spring入门的Demo就算成功了!
这里写图片描述

让我死皮赖脸的说最后一句:转载注明出处,盗版必究,一口气写下来真的需要耐心!