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. ...
随机推荐
- python 全栈开发,Day126(创业故事,软件部需求,内容采集,显示内容图文列表,MongoDB数据导入导出JSON)
作业讲解 下载代码: HBuilder APP和flask后端登录 链接:https://pan.baidu.com/s/1eBwd1sVXTNLdHwKRM2-ytg 密码:4pcw 如何打开APP ...
- python 全栈开发,Day102(支付宝支付)
昨日内容回顾 1. django请求生命周期? - 当用户在浏览器中输入url时,浏览器会生成请求头和请求体发给服务端 请求头和请求体中会包含浏览器的动作(action),这个动作通常为get或者po ...
- python 全栈开发,Day53(jQuery的介绍,jQuery的选择器,jQuery动画效果)
js总结 js: 1.ECMAScript5 ES5语法 2.DOM CRUD 获取 3种方式 id tag className //面向对象 对象 : 属性和方法 某个对象中 function $( ...
- PE文件版本那些事儿
发现文件的版本号很有意思,win7下右键属性显示两个版本号,分别是File Version 和 Product version.但使用vs编辑版本资源里面却有四处版本号,如下: 发现有以下区别,上面为 ...
- sql 根据日期模糊查询&SQL Server dateTime类型 模糊查询
曾经遇到这样的情况,在数据库的Meeting表中有PublishTime (DateTime,8)字段,用来存储一个开会时间,在存入时由于要指明开会具体时间,故格式为yyyy-mm-dd hh:mm: ...
- ElasticSearch - How to search for a part of a word with ElasticSearch
Search a part of word with ElasticSearch 来自stackoverflow https://stackoverflow.com/questions/6467067 ...
- SPFILEOPENBANKDB.ORA 手动编辑产生问题
因为最近启动后发现经常内存高占用,一个ORACLE实例占用超过7G内存,两个就15G,卡的让人坐立不安.于是百度了一下,使用下面的命令将sga_max_size从7G修改为200M show para ...
- [转] 学会fetch的用法
fetch是web提供的一个可以获取异步资源的api,目前还没有被所有浏览器支持,它提供的api返回的是Promise对象,所以你在了解这个api前首先得了解Promise的用法.参考阮老师的文章 那 ...
- 利用dwebsocket在Django中使用Websocket
一.Websockets介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...
- 《Android进阶之光》--ButterKnife
No1: 添加依赖库 Project的build.gradle文件添加 buildscript{ ... dependencies{ ... classpath 'com.neenbedankt.gr ...