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

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

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

一、概念

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

二、架包

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

除了这些架包外,还要添加一个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 {@Overridepublic 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/beanshttp://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 {@Testpublic 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.配置成功,控制台会输出如下图结果。

转载于:https://www.cnblogs.com/smashed/p/3981247.html

spring3.2.5学习(一)——spring环境配置以及IOC简介相关推荐

  1. openCV2学习笔记---1.环境配置

    openCV2学习笔记-1.环境配置 openCV 是开源的计算机视觉代码库,可以运行在Linux.Windows和Mac OS操作系统上.它轻量级而且高效--由一系列 C 函数和少量 C++ 类构成 ...

  2. 从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN)

    从零开始搭建深度学习服务器: 基础环境配置(Ubuntu + GTX 1080 TI + CUDA + cuDNN) 首先先声明一下 这篇是转载来自  : 从零开始搭建深度学习服务器: 基础环境配置( ...

  3. 一篇就够用了——深度学习Ubuntu16.04环境配置+Win10双系统

    一篇就够用了深度学习Ubuntu16.04环境配置 必看!此教程使用说明 [必备配置]基本环境配置 1.win10+ubuntu16.04双系统安装 2.ubuntu最重要的事--切换下载源 3.ub ...

  4. 从零开始搭建一台深度学习服务器及环境配置

    从零开始搭建一台深度学习服务器及环境配置 服务器硬件 2019.12.12 系统安装 环境配置--现有最新版本 服务器硬件 2019.12.12 实验室需求,我找的配置,反正不用我花钱独享一台服务器 ...

  5. spring 环境配置

    搭建Spring开发环境并编写第一个Spring小程序 一.前面,我写了一篇Spring框架的基础知识文章,里面没讲到如何配置Spring开发环境,今天就来讲一下,如果大家不知道怎么下载Spring软 ...

  6. 深度学习Pytorch/Caffe-GPU环境配置

    双系统Ubuntu16.04.06LTS+Nvidia显卡驱动 + Cuda9.0 + CuDNN7.4.2 +Opencv 3.4.6 + Pytorch/Caffe-GPU 目录 一.安装双系统 ...

  7. 40系笔记本(可不联网激活)深度学习生产力(环境配置和简单训练测试)

    40系笔记本深度学习.转码生产力(环境配置和简单训练测试)这里写自定义目录标题 深度学习环境准备 CUDA.CUDNN版本问题 torch版本问题 其他软件版本的安装命令 训练测试代码地址 关于Lin ...

  8. 【Spring学习】spring动态配置多数据源

    这段时间在做智能导航的管理系统--运维系统,涉及到连接多个数据库的问题.因为运维系统要用到智能导航的一些功能,我们目前只是简单的将智能导航整合到运维系统中:运维系统有一个自己的数据库,导航也有自己的数 ...

  9. 深度学习之GPU环境配置

    写下此博客以纪念我这一周的折腾. 刚开始是打算在ubuntu18.04上面直接配置GPU运行环境的,然后遇到了各种问题,首先就是在terminal中输入nvidia-smi命令,出现需要你安装最新驱动 ...

  10. JAVA Web学习(1) ----开发环境配置

    1.JAVA WEB环境配置: a): Tomcat 安装遇到的问题 下载地址:http://mirrors.hust.edu.cn/apache/tomcat/tomcat-7/v7.0.90/bi ...

最新文章

  1. 剑指offer 26:复杂链表的复制
  2. LINUX系统一些监管命令
  3. 双时隙的工作原理_工业内窥镜的原理是什么?有哪些测量方法
  4. NR 5G 身份标识
  5. react-native-sound的使用
  6. 浏览器 user-agent 字符串的故事
  7. 扩展thinkphp5的redis类方法
  8. python csv模块追加列,使用Python在CSV上添加新列
  9. Dapr 已在塔架就位 将发射新一代微服务
  10. 操作基本数据类型的流/数据流
  11. 2023计算机毕业设计SSM最新选题之javaEE的仓库管理系统93c6b
  12. java FTP获取文件夹中所有文件
  13. antDesign Drawer
  14. 远程桌面管理助手有哪些?11款最好的远程桌面软件推荐。
  15. 谷歌研究利用AI合成图片,使静态图片动起来
  16. win10下CUDA版本卸载与更新
  17. 音视频系列 - 云游戏产业分析与技术剖析
  18. 【直接下载】x86_64-8.1.0-release-win32-sjlj-rt_v6-rev0
  19. 访问网站时,网站可以进行访问,但使用ping命令,ping域名或ip时发现ping不通原因
  20. L3智能驾驶控制算法及验证、自动驾驶道路测试与数据采集、场景挖掘

热门文章

  1. 描绘质量属性的六个常见属性场景。
  2. PHP模拟实现url rewrite
  3. 字符串lcfirst解析
  4. socket通信,server与多客户端通信(二)
  5. PowerDesigner的CDM模型将低驼峰命名法则的每个大写字母前加_符
  6. Macaca自动化测试Android和IOS应用
  7. Openstack api 学习文档 restclient使用文档
  8. 第一届数据库***大赛(欢迎大家共同讨论,发表自己的见解)
  9. 6.go import
  10. 18.UNIX 环境高级编程--终端IO