Spring框架入门

作者: Mr_欢先生 | 来源:发表于2017-06-24 18:38 被阅读140次

    一.传统的开发模式

    基于mvc模式进行项目开发;
    基于mvc的项目框架结构:
    Entity / dao/service/ action

    思考:
    1. 对象创建创建能否写死?
    2. 对象创建细节
        对象数量
            action  多个   【维护成员变量】
            service 一个   【不需要维护公共变量】
            dao     一个   【不需要维护公共变量】
        创建时间
            action    访问时候创建
            service   启动时候创建
            dao       启动时候创建
    3. 对象的依赖关系
        action 依赖 service
        service依赖 dao
    
    总结:

    spring就是解决上面的问题的!
    简单来说,就是处理对象的创建的、以及对象的依赖关系!

    二.专业术语了解

    组件/框架设计

    1.侵入式设计
    引入了框架,对现有的类的结构有影响;即需要实现或继承某些特定类。
    2.非侵入式设计
    引入了框架,对现有的类结构没有影响。
    3.控制反转:
    Inversion on Control , 控制反转 IOC
    对象的创建交给外部容器完成,这个就做控制反转.
    4.依赖注入, dependency injection 处理对象的依赖关系

    • 区别:

    控制反转, 解决对象创建的问题 【对象创建交给别人】
    依赖注入,在创建完对象后, 对象的关系的处理就是依赖注入 【通过set方法依赖注入】

    5.AOP
    面向切面编程。切面,简单来说来可以理解为一个类,由很多重复代码形成的类。
    切面举例:事务、日志、权限;

    三.开发步骤

    1.添加jar包

    maven项目加载:pom.xml

    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>4.1.7.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>4.1.7.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>4.1.7.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>4.1.7.RELEASE</version>
        </dependency>
        <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>1.2</version>
        </dependency>
    
    image.png

    2.核心配置文件

    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:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context"
           xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd">
    
            <!--IOC容器,所有创建的文件都配置在这里-->
            <bean id="user" class="com.huan.User"></bean>
    </beans>
    
    

    3.写User.java

    package com.huan;
    
    /**
     * Created by 马欢欢 on 2017/6/24.
     */
    public class User {
        private int id;
        private String username;
        private String password;
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getUsername() {
            return username;
        }
    
        public void setUsername(String username) {
            this.username = username;
        }
    
        public String getPassword() {
            return password;
        }
    
        public void setPassword(String password) {
            this.password = password;
        }
    }
    
    

    4.测试创建对象

    1.通过工厂类的到容器创建的对象

    @Test
        public void test1(){
            //将对象交给SpringIOC容器创建
            Resource resource = new ClassPathResource("Spring/applicationContext.xml");
            //创建容器对象(Bean工厂)
            BeanFactory factory =new XmlBeanFactory(resource);
            User user = (User) factory.getBean("user");
            System.out.println(user.getId());
        }
    

    2.直接的到容器对象

      @Test
        public void test2(){
            //得到IOC容器对象
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("Spring/applicationContext.xml");
            User user = (User) applicationContext.getBean("user");
            user.setUsername("huanhuan");
            System.out.println(user.getUsername());
        }
    

    5.运行结果

    文集:Spring框架学习

    相关文章

      网友评论

        本文标题:Spring框架入门

        本文链接:https://www.haomeiwen.com/subject/kmjccxtx.html