zoukankan      html  css  js  c++  java
  • Spring框架(1)---Spring入门

    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)创建接口实现类:

    1 public class HelloServiceImpl implements HelloServcie {
    2     
    3     public void sayHello() {
    4         System.out.println("hello spring");
    5     }
    6 }

    (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的第一个优点那就是解耦合,这样更有利于后期的维护。

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

  • 相关阅读:
    IEnumerable和IQueryable的区别
    最全的ASP.NET MVC路由配置,以后RouteConfig再弄不懂去吃翔
    JSON遍历方法
    将Sublime Text 2搭建成一个好用的IDE
    Linux入门教程
    apache如何配置默认的根目录
    Web移动端Fixed布局的解决方案
    node-创建模块
    关于文字内容溢出用点点点(…)省略号表示
    JavaScript设计模式与开发实践 | this、call和apply
  • 原文地址:https://www.cnblogs.com/qdhxhz/p/6509434.html
Copyright © 2011-2022 走看看