Spring4学习笔记一:环境搭建与插件安装、基本概念理解
一:环境搭建
1:开发环境:JDK安装、Eclipse安装
2:数据库:Mysql、Sequel Pro(数据库可视化操作工具)
3:web服务器:Tomcat下载,并且把tomcat配置到Eclipse的Server选项中
4:其他辅助工具:jar包反编译工具JD-GUI、J2EE常用jar包下载
二:安装Spring辅助插件——Spring tool suite
分为离线安装和在线安装。
离线安装如果遇到“cannot perform opration......”报错的话,点击 Add 按钮下面 或者 右边 的“Avaiable...”或者“manage”按钮,把 http 开头的选项去掉,即可安装。
在线安装的话,在Eclipse的Help——Eclipse MarketPlace——Popular,找到 Spring tool suite ,即可安装,可能需要翻墙。
安装完成后重启,点击 File——New——看到有Spring开头的相关选项即安装成功。
三:IOC与DI
IOC:控制反转,即:对象的创建与管理不再由代码控制,而是由spring容器控制。
DI:依赖注入,即:spring容器创建对象后,注入到代码创建的引用中。也就是说:代码创建对象引用,指向容器创建的真正对象。
四:IOC容器概述
我们在获取bean之前,必须先对IOC容器进行初始化,然后才能通过容器来获取bean。
容器的初始化:通过创建ApplicationContext对象进行容器的创建,并且通过读取applicationContext.xml对容器进行初始化,IOC容器根据该xml文件创建一系列的bean对象。
法一(常用):通过类路径来加载配置文件,此时配置文件必须位于src目录下。
ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml"); 法二:通过文件系统加载配置文件,此时配置文件可以位于服务器上其他文件夹中,但是需要提供具体的路径来加载它。
ApplicationContext ctx = new FileSystemXmlApplicationContext("..../路径/applicationContext.xml");
对象的获取:通过容器对象.getBean()方法来获取,参数可以是bean在容器中的id,也可以用 bean.class 反射方式寻找对象。
Bean bean = ctx.getBean("id");
Bean bean = ctx.getBean(Bean.class); //这样要求该Bean类型只配置了一个bean对象,否则只能用id来寻找
注意:容器的创建在项目中应该唯一
容器是根据applicationContext.xml来初始化的,如果在每个需要使用容器来获取bean的类文件中都通过 ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");语句创建容器的话,那么将会创建出多个“独立、分离”的容器对象,各个容器中的bean对象不能相互调用。
因此,我们应该让容器在项目中唯一存在,解决办法就是——工厂模式:
创建一个Factory类,在其中创建ApplicationContext对象,并且提供一个静态方法来获取applicationContext。方法中进行检测:如果对象存在,则直接返回;如果不存在,则创建。
Spring4学习笔记一:环境搭建与插件安装、基本概念理解的更多相关文章
- Android Studio 学习笔记(一)环境搭建、文件目录等相关说明
Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...
- Django学习笔记 开发环境搭建
为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统a ...
- 我的Java学习笔记 -开发环境搭建
开始学习Java~ 一.Java简介 Java编程语言是一种简单.面向对象.分布式.解释型.健壮安全.与系统无关.可移植.高性能.多线程和动态的语言. Java分为三个体系: JavaSE(J2SE) ...
- cocos2d-x lua 学习笔记(1) -- 环境搭建
Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...
- SpringData JPA的学习笔记之环境搭建
一.环境搭建 1.加入jar包 spring jar+jpa jar +springData jar >>SpringData jar包 2.配置applicationCont ...
- Mybatis学习笔记之---环境搭建与入门
Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...
- 前端框架vue学习笔记:环境搭建
兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...
- Web安全测试学习笔记 - vulhub环境搭建
Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...
- 【Django学习笔记】-环境搭建
对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...
随机推荐
- Linux下搭建ruby on rails环境
要搭建的东西:Ruby 1.8.7,Rails 2.3.8,rubygem 1.3.7 1.安装ruby sudo apt-get install ruby-full 2.安装rubygem sudo ...
- 《剑指offer》-旋转数组的最小数字
把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转,该数 ...
- 关于trim,ltrim ,rtrim 的 移除问题
今天在PHP中遇到一个问题: echo ltrim('D:/wamp/www/phpnow/demo/','D:/wamp/www/'); echo ltrim('D:/wamp/www/phpnow ...
- Redis与Zookeeper实现分布式锁的区别
Redis实现分布式锁 1.根据lockKey区进行setnx(set not exist,如果key值为空,则正常设置,返回1,否则不会进行设置并返回0)操作,如果设置成功,表示已经获得锁,否则并没 ...
- 【BZOJ 3294】[Cqoi2011]放棋子
题解: 一道很经典的组合数+dp 首先考虑f[i][j][k]表示前k种颜色正好占据了i行j列 转移的话就是枚举第k种颜色占据了几行几列 通过自身转移 然后其在内部的相对顺序是不确定的所以要乘以组合数 ...
- 【转载】和 Thrift 的一场美丽邂逅
http://www.cnblogs.com/cyfonly/p/6059374.html 一. 与 Thrift 的初识 也许大多数人接触 Thrift 是从序列化开始的.每次搜索 “java序列化 ...
- 什么是AOP?
AOP(Aspect-Oriented Programming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善.OOP引入封装.继承和 ...
- 005.Docker存储管理
一 Docker volume形态 因为Docker 采用 AFUS 分层文件系统时,文件系统的改动都是发生在最上面的容器层,在容器的生命周期内,它是持续的,包括容器在被停止后.但是,当容器被删除后, ...
- C# 重启程序本身
private static void Restart() { Thread thtmp = new Thread(new ParameterizedThreadStart(run)); object ...
- 每日踩坑 2018-01-09 WebAPI会如何面对 枚举 参数?
这一块确实有些疑问, 众所周知 枚举参数我们传送枚举值所对应的数字就行了, 以前 Leader 跟我讲过,枚举参数会将字符串值也能够成功转化,而且枚举值定义之外的数字也可以被转为枚举值. 主要的问题在 ...