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。
  • 相关阅读:
    揭秘数字行为:快速地多次点击
    MySQL事务在MGR中的漫游记—路线图
    如何成为一名获客专家?
    10分钟快速构建汽车零售看板
    聊一聊整车厂的那些事——售后配件业务
    网易云易盾牵手百视通 助力广电领域新媒体内容安全
    人工智能热门图书(深度学习、TensorFlow)免费送!
    dubbo异步调用原理 (1)
    dubbo事件通知机制 (2)
    dubbo事件通知机制(1)
  • 原文地址:https://www.cnblogs.com/itdragon/p/7717855.html
Copyright © 2011-2022 走看看