zoukankan      html  css  js  c++  java
  • Spring4 快速入门

    Spring4 快速入门

    1 Spring简介

    1.1 Spring是什么?###

    Spring 是一个 IOCAOP 容器的开源框架,为简化企业级应用而生。
    IOC(Inversion of Control)控制反转,不再是等待容器返回资源,而是主动让容器推送资源。

    其中DI(Dependency Injection)依赖注入,就是IOC的一种表现方式。说白了,就是利用xml解析+java反射机制技术,读取配置文件给对象赋值罢了(也就是下面的第四步)。
    详解可参考:Spring4 IOC详解
    AOP(Aspect Oriented Programming)面向切面编程,暂时不说!!!Spring4 AOP详解

    1.2 Spring 做什么?###

    Spring就像一个管家,帮你管理事务。传统的应用,应用层(Struts2)和事务层(Service)联系很紧密,通过Spring管理之间的关系,减低其耦合性。说白了,Spring的出现就是为了解决现有问题,使开发更快捷,更健壮。若是越用越麻烦,谁还用他。另外,一定要好好学习Spring,他可是有一统天下的野心。有针对Struts2的SpringMVC,有针对Hibernate/mybatis的SpringData,以及为了简化开发的 Spring boot 和 Spring Cloud。你害怕了么?


    2 入门代码

    按照国际惯例,我们先来一个Hello World得意。
    第一步:创建maven web项目,不清楚的可以访问:http://blog.csdn.net/qq_19558705/article/details/49887717
    第二步:导包。maven导包的好处,就是可以自己控制自己,把需要的最佳的依赖导入,从而减少包的冲突。

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
        <modelVersion>4.0.0</modelVersion>  
        <groupId>spring</groupId>  
        <artifactId>helloworld</artifactId>  
        <version>0.0.1-SNAPSHOT</version>  
        <packaging>war</packaging>  
      
        <properties>  
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
            <spring.version>4.2.1.RELEASE</spring.version>  
        </properties>  
      
        <dependencies>  
            <dependency>  
                <groupId>commons-logging</groupId>  
                <artifactId>commons-logging</artifactId>  
                <version>1.1.1</version>  
            </dependency>  
      
            <dependency>  
                <groupId>mysql</groupId>  
                <artifactId>mysql-connector-java</artifactId>  
                <version>5.1.37</version>  
            </dependency>  
      
            <!-- spring start -->  
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-core</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
      
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-beans</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
      
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-context</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
      
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-web</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
      
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-expression</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
      
            <dependency>  
                <groupId>org.springframework</groupId>  
                <artifactId>spring-aop</artifactId>  
                <version>${spring.version}</version>  
            </dependency>  
            <!-- spring end -->  
      
        </dependencies>  
    </project>  
    

    第三步:HelloWorld对象

    package com.spring.hello;  
    public class HelloWorld {  
        private String hello;  
        public void setHello(String hello) {  
            this.hello = hello;  
        }     
        public void helloWorld(){  
            System.out.println("Spring say :"+hello);  
        }  
    } 
    

    第四步:配置xml文件,要严格按照语法来写,便于Spring底层代码解析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"  
        xmlns:p="http://www.springframework.org/schema/p"  
        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-4.0.xsd">  
          
        <!-- 配置一个 bean -->  
        <bean id="helloWorld" class="com.spring.hello.HelloWorld">  
            <!-- 为属性赋值 -->  
            <property name="hello" value="Hello World"></property>  
        </bean>  
          
    </beans>  
    

    第五步:体验一把依赖注入的快感

    import org.springframework.context.ApplicationContext;  
    import org.springframework.context.support.ClassPathXmlApplicationContext;  
    public class HelloTest {      
        public static void main(String[] args) {  
              
            //1. 创建Spring 的IOC容器  
            ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");  
              
            //2. 从容器中获取 Bean 其实就是new 的过程  
            HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");  
            // 也可以是,但不建议 HelloWorld helloWorld = ctx.getBean(HelloWorld.class);   
            //3. 执行函数  
            helloWorld.helloWorld();  
           }  
    }  
    

    运行结果如果打印以下内容,则说明完成

    十一月 23, 2015 12:01:46 下午 org.springframework.context.support.AbstractApplicationContext prepareRefresh  
    INFO: Refreshing org.springframework.context.support.ClassPathXmlApplicationContext@edbe39: startup date [Mon Nov 23 12:01:46 CST 2015]; root of context hierarchy  
    十一月 23, 2015 12:01:46 下午 org.springframework.beans.factory.xml.XmlBeanDefinitionReader loadBeanDefinitions  
    INFO: Loading XML bean definitions from class path resource [beans.xml]  
    Spring say :Hello World  
    

    那么一个简单的spring HelloWorld就做好了,是不是很简单!如果你觉得很简单,那么你已经打开了Spring的大门。如果你觉得很难理解,没事!多看敲几遍。原文链接:http://write.blog.csdn.net/postedit/49992021
    每天都在进步,每天都在成长,如果有什么问题和建议可以留言,我会及时处理。如果你觉得不错,可以点个赞哦!


    ----------------------- 以上内容写于 2015-11-23 10:49 ,现在从csdn搬家过来, 以下是2017-10-24 补充内容 -----------------------


    其实以上内容并不完全是 spring4.x 的方法 =。=|||
    在spring 2.x 和 spring 3.x 的时代:我们通常采用基本配置一般用xml方式,业务开发用注解方式。其实spring 3.x 已经提供了java编程方式。而在spring 4.x的时候就已经开始推荐使用java编程时。原因和具体的使用方法后续有时间补充介绍
    使用起来很简单,两个注解:

    1. @Configuration 修饰在类上,告知程序这是一个配置类。你可以理解为一个xml文件。
    2. @Bean 修改在一个getXXX() 方法上,告知程序它已经实例化了。你可以理解为是一个bean。
  • 相关阅读:
    4 Apr 18 软件开发目录 logging模块的使用 序列化(Json, Pickle) os模块
    3 Apr 18 内置函数 列表生成式与生成器表达式 模块的使用之import 模块的使用之from…import…
    2 Apr 18 三元表达式 函数递归 匿名函数 内置函数
    30 Mar 18 迭代器 生成器 面向过程的编程
    29 Mar 18 函数 有参、无参装饰器
    28 Mar 18 函数
    27 Mar 18 函数的参数
    26 Mar 18 函数介绍
    23 Mar 18 文件处理
    22 Mar 18 补充数据类型+字符编码+文件处理
  • 原文地址:https://www.cnblogs.com/itdragon/p/7717855.html
Copyright © 2011-2022 走看看