• spring3.2.5学习(一)——spring环境配置以及IOC简介


    经常听别人说学技术的时候挑些有用的学更靠谱一点,然后就将很多的原理啊、逻辑啊什么的全扔一边,我想这就是实用主义者的主张了,一切以实用为主。之前,自己也是这么做,后来发现这样很容易达到瓶颈,没有一个全面的知识体系,根本就不知道还有什么好玩的。所以在实用的基础上,自己又琢磨着如何扩展知识,补全整个知识体系结构。

    学习spring,不可避免的就是查文档了。可以到SPRING官网下一个spring-framework-3.2.5.RELEASE包,打开目录/docs/spring-framework-reference/htmlsingle下的index.html页面,那么spring的整个框架目录就一目了然了,这个索引就像是spring的一本书,至于怎么找,这里就不多介绍了。

    image

    这篇文章其实是记录了spring的初级环境配置,也就囊括了IOC的概念。现在进入正题:

    一、概念

    首先介绍一下SPRING的IOC,通常也叫做DI。两者相差不多大。IOC英文全称为Inversion of Control(控制反转),DI英文全称为dependency injection(依赖注入)。这里就不去仔细区分两者之间的差别,意义不大。

    二、架包

    从下载下来的lib中就有spring所需要的架包,其目录列表如下图:

    image

    除了这些架包外,还要添加一个commons-loggin-1.0.4.jar。

    三、配置环境

    1.新建一个java项目(初级spring环境配置并不需要在web环境下),并引入所需的架包。

    2.新建一个实体类TCyrusUser.java

    package com.cyrus.platform.model;
    
    import java.io.Serializable;
    
    @SuppressWarnings("serial")
    public class TCyrusUser implements Serializable  {
        private String id;
        private String name;
        private String age;
        private String address;
        
        
        
        public TCyrusUser() {
            this.id = "001";
            this.name = "Cyrus";
            this.age = "18";
            this.address = "拉萨";
        }
    
        public TCyrusUser(String id, String name, String age, String address) {
            super();
            this.id = id;
            this.name = name;
            this.age = age;
            this.address = address;
        }
        
        public String getId() {
            return id;
        }
        public void setId(String id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getAge() {
            return age;
        }
        public void setAge(String age) {
            this.age = age;
        }
        public String getAddress() {
            return address;
        }
        public void setAddress(String address) {
            this.address = address;
        }    
    }

    3.新建一个接口服务TCyrusUserService.java

    package com.cyrus.platform.service;
    
    import com.cyrus.platform.dao.TCyrusUserDAO;
    import com.cyrus.platform.model.TCyrusUser;
    
    public class TCyrusUserService {
        private TCyrusUserDAO userDAO;
        
        
        public void save(TCyrusUser user){
            this.userDAO.save(user);
        }
    
        public TCyrusUserDAO getUserDAO() {
            return userDAO;
        }
    
        public void setUserDAO(TCyrusUserDAO userDAO) {
            this.userDAO = userDAO;
        }
    
    }

    4.考虑到实体可能和不同数据库打交道,所以这里就体现了面对抽象编程的思想,通过接口和实现区分开。

    package com.cyrus.platform.dao;
    
    import com.cyrus.platform.model.TCyrusUser;
    
    public interface TCyrusUserDAO {
        public void save(TCyrusUser user);
    }
    package com.cyrus.platform.dao.impl;
    
    import com.cyrus.platform.dao.TCyrusUserDAO;
    import com.cyrus.platform.model.TCyrusUser;
    
    public class TCyrusUserDAOImpl implements TCyrusUserDAO {
    
        @Override
        public void save(TCyrusUser user) {
            System.out.println("the user is saved!");
        }
    }

    5.配置spring所属的xml文件,为了养成良好的编程习惯,我就把这个文件名字命名为applicationContext.xml。其实这个xml的文件名称不重要,只要在读取xml文件配置的时候名称能对应上就可以了。spring的注入常用的还有构造方法,详细可以参考spring索引文档。spring的xml配置就体现了IOC的概念,在类中不需要去new而是通过配置文件来控制。其bean标签中的id可以用name代替。在该项目中xml的路径为src/resources/spring/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"
        xsi:schemaLocation="http://www.springframework.org/schema/beans
               http://www.springframework.org/schema/beans/spring-beans.xsd">
               
        <bean id="userDAO" class="com.cyrus.platform.dao.impl.TCyrusUserDAOImpl">
        </bean>
        <bean id="userService" class="com.cyrus.platform.service.TCyrusUserService">
            <property name="userDAO" ref="userDAO" />
        </bean>
    </beans>

    四、测试

    经过上面几步,spring的初级环境就已经配置完毕了。最后要做得就是测试,是否配置成功。

    1.使用junit对TCyrusUserService进行测试。

    package com.cyrus.platform.service;
    
    import org.junit.Before;
    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    import com.cyrus.platform.model.TCyrusUser;
    
    public class TCyrusUserServiceTest {
    
        @Test
        public void test() {
            ApplicationContext context = new ClassPathXmlApplicationContext("classpath*:resources/spring/**/application*.xml");
            TCyrusUserService service = context.getBean("userService",
                    TCyrusUserService.class);
            TCyrusUser user = new TCyrusUser();
            service.save(user);
        }
    
    }

    2.配置成功,控制台会输出如下图结果。

    image

  • 相关阅读:
    多项式计算
    递归算法
    递推算法
    穷举算法
    两个数用二进制表示,有多少位不同
    一个整数的二进制数中1的个数
    将十进制数转化为二进制数
    (调用方法)判断一个整数是否为素数两种方法,年份是否是闰年,交换两个数值
    快速排序算法
    用户登录系统
  • 原文地址:https://www.cnblogs.com/smashed/p/3981247.html
Copyright © 2020-2023  润新知