Spring入门

为了能更好的理解先讲一些有的没的的东西:

什么是Spring

 Spring是分层的JavaSE/EE full-stack(一站式) 轻量级开源框架
    分层
      SUN提供的EE的三层结构:web层、业务层、数据访问层(持久层/集成层)
      Struts2是web层基于MVC设计模式框架
      Hibernate是持久层的一个ORM的框架
    一站式
      Spring框架有对三层的每层解决方案
        web层:Spring MVC
        持久层:JDBC Template
        业务层:Spring的Bean管理

Spring的核心:

   控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。

  依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。

Spring优点
  方便解耦,简化开发
    Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理
  AOP编程的支持
    Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能
  声明式事务的支持
    只需要通过配置就可以完成对事务的管理,而无需手动编程
  方便程序的测试
    Spring对Junit4支持,可以通过注解方便的测试Spring程序
  方便集成各种优秀框架
    Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts、Hibernate、MyBatis、Quartz等)的直接支持
  降低JavaEE API的使用难度
    Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

前面讲的都是废话,下面开始进入最基础的:

Spring的入门的程序

(1)导包

   下载Spring的开发包

        下载最新的jar包地址:http://repo.spring.io/simple/libs-release-local/org/springframework/spring/
  
       spring-framework-4.3.7.RELEASE-dist.zip ---Spring开发包

注意:
    spring-beans-4.3.7.RELEASE.jar     //这四个在spring开发包中文件搜索就可以找到
    spring-context-4.3.7.RELEASE.jar
    spring-core-4.3.7.RELEASE.jar
    spring-expression-4.3.7.RELEASE.jar
    开发的日志记录的包:                       //在apache下下载
      com.springsource.org.apache.commons.logging-1.1.1.jar --- 用于整合其他的日志的包(类似Hibernate中slf4j)
      com.springsource.org.apache.log4j-1.2.15.jar

(2)创建Spring的配置文件
    在src下创建一个applicationContext.xml
    引入XML的约束:在spring开发包中找到xsd-config.html.引入beans约束

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!-- bean definitions here -->

(3)创建接口:HelloServcie

public interface HelloServcie {

    public void sayHello();
}

(4)创建接口实现类:

 public class HelloServiceImpl implements HelloServcie {

     public void sayHello() {
System.out.println("hello spring");
}
}

(5)配置applicationContext.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"
xmlns:util="http://www.springframework.org/schema/util" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd"> <!-- bean definitions here --> <!-- 1.快速入门程序============================================================================== -->
<!--
配置使用哪个实现类
id 标识符
class 需要实例化的类路径
-->
<bean id="helloServices" class="com.study.spring.a_quickstart.HelloServiceImpl">
</bean>
<!-- end.快速入门程序============================================================================== --> </bean

(6)配置测试类

public class HelloTest {
public static void main(String[] args) {
//传统写法 紧密耦合
HelloServiceImpl servcie =new HelloServiceImpl();
//手动调用方法
servcie.sayHello(); //工厂+反射+配置文件
ApplicationContext applicationContext =new ClassPathXmlApplicationContext("applicationContext.xml");
//通过工厂 和反射一级配置文件中的信息加载类对象
HelloServcie helloServcie=(HelloServcie) applicationContext.getBean("helloServices");
helloServcie.sayHello();
}
}
/*后台两次输出:hello spring
*/

这个例子非常简单,也主要是从这个例子说明spring的第一个优点那就是解耦合,这样更有利于后期的维护。

这篇文章写得很入门,也希望大家多多指点,谢谢!

Spring框架(1)---Spring入门的更多相关文章

  1. Spring 框架介绍 [Spring 优点][Spring 应用领域][体系结构][目录结构][基础 jar 包]

    您的"关注"和"点赞",是信任,是认可,是支持,是动力...... 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 目录 ...

  2. 一句话概括下spring框架及spring cloud框架主要组件

    作为java的屌丝,基本上跟上spring屌丝的步伐,也就跟上了主流技术.spring 顶级项目:Spring IO platform:用于系统部署,是可集成的,构建现代化应用的版本平台,具体来说当你 ...

  3. 《经久不衰的Spring框架:Spring+SpringMVC+MyBatis 整合》

    前言 主角即Spring.SpringMVC.MyBatis,即所谓的SSM框架,大家应该也都有所了解,概念性的东西就不写了,有万能的百度.之前没有记录SSM整合的过程,这次刚刚好基于自己的一个小项目 ...

  4. Spring(二):Spring框架&Hello Spring

    Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的.框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架. Spring 框架 ...

  5. Spring框架学习——Spring的体系结构详解

    1.Spring简介 Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题.它是一个分层的JavaSE/JavaEE ...

  6. 【spring框架】spring获取webapplicationcontext,applicationcontext几种方法详解--(转)

    方法一:在初始化时保存ApplicationContext对象代码:ApplicationContext ac = new FileSystemXmlApplicationContext(" ...

  7. 什么是Spring框架? Spring框架有哪些主要的模块?

    Spring框架是一个为java应用程序的开发提供了综合,广泛的基础性支持的java平台.Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发.Spring框架本身亦是 ...

  8. Spring框架学习-Spring和IOC概述

    一:什么是Spring框架? spring是一个分层的javase/EEfull-stack(一站式)轻量级的java开源框架.是为了解决企业开发的复杂性而创建的.框架的主要优势是分层架构,Sprin ...

  9. Spring框架:Spring安全

    在传统的Web发展,安全码被分散在各个模块,这样方便管理,有时你可能会错过一个地方导致安全漏洞.为了解决这个问题,它的发明Spring Security.它是业务逻辑的有关安全代码的作用全部转移到一个 ...

随机推荐

  1. ajax 参数记录

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  2. 别人的Linux私房菜(22)软件安装:源代码与Tarball

    执行make,会在当前目录查找makefile文本文件(记录了源代码如何编译的详细信息). 内核相关的函数信息放置在/usr/lib./usr/lib64里. 在Tarball(一般为xxx.tar. ...

  3. SAS 循环与数组

    SAS 循环与数组 SAS提供了循环语句以满足在编程中需要多次执行相同操作的情 况.有时还需要对不同的变量执行相同的操作,此时可定义SAS数组,并通过数组名和下标来引用这些变量. 1 循环 SAS循环 ...

  4. tomcat配置层了解一下 idea打包 java打包部署

    Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件. 如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点 ...

  5. mysql几种中间件对比

    网上找到的图 重点比较几个 1.atlas 基于mysql-proxy,360团队 优点: 配置简单,支持读写分离 缺点: 年份久,功能有限 地址:https://github.com/Qihoo36 ...

  6. [转]ps命令详解

    原文地址:http://apps.hi.baidu.com/share/detail/32573968 转载自:http://www.cnblogs.com/wangkangluo1/archive/ ...

  7. 使用tcpdump探测TCP/IP三次握手

    读计算机应该就同说过TCP/IP三次握手,但是都没有去验证过,今天心血来潮,去验证了一下,于是乎写下了这篇博客,可能写的可能有问题,还请多多指教 包括我学习,还有从很多资料来看资料,第三次握手,应该会 ...

  8. can't open the mysql.plugin table. please run mysql_upgrade to create it.

    To initialize a fresh data directory, you basically (after setting your config file) just have to ru ...

  9. Strusts2

    Strusts2的原理很简单,首先,地址栏输入http://xxxx/xxxx/webapp/xx.action首先,请求会通过httpservlet发送给tomcat容器,tomcat发现这个请求是 ...

  10. 功能强大的js数组方法:reduce

    arr.reduce()方法接受一个函数作为累加器,数组中的每个值从左到右开始缩减,最终为一个值. reduce接受的参数主要有callback(回调函数)和可选参数initvalue(作为第一次调用 ...