一:环境搭建

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学习笔记一:环境搭建与插件安装、基本概念理解的更多相关文章

  1. Android Studio 学习笔记(一)环境搭建、文件目录等相关说明

    Android Studio 学习笔记(一)环境搭建.文件目录等相关说明 引入 对APP开发而言,Android和iOS是两大主流开发平台,其中区别在于 Android用java语言,用Android ...

  2. Django学习笔记 开发环境搭建

    为什么使用django?1.支持快速开发:用python开发:数据库ORM系统,并不需要我们手动地构造SQL语句,而是用python的对象访问数据库,能够提升开发效率.2.大量内置应用:后台管理系统a ...

  3. 我的Java学习笔记 -开发环境搭建

    开始学习Java~ 一.Java简介 Java编程语言是一种简单.面向对象.分布式.解释型.健壮安全.与系统无关.可移植.高性能.多线程和动态的语言. Java分为三个体系: JavaSE(J2SE) ...

  4. cocos2d-x lua 学习笔记(1) -- 环境搭建

    Cocos2d-x 3.0以上版本的环境搭建和之前的Cocos2d-x 2.0 版差异较大的,同时从Cocos2d-x 3.0项目打包成apk安卓应用文件,搭建安卓环境的步骤有点繁琐,但搭建一次之后, ...

  5. SpringData JPA的学习笔记之环境搭建

    一.环境搭建 1.加入jar包   spring jar+jpa jar +springData jar >>SpringData jar包     2.配置applicationCont ...

  6. Mybatis学习笔记之---环境搭建与入门

    Mybatis环境搭建与入门 (一)环境搭建 (1)第一步:创建maven工程并导入jar包 <dependencies> <dependency> <groupId&g ...

  7. 前端框架vue学习笔记:环境搭建

    兼容性 不兼容IE8以下 Vue Devtools 能够更好的对界面进行审查和调试 环境搭建 1.nodejs(新版本的集成了npm)[npm是node包管理 node package manager ...

  8. Web安全测试学习笔记 - vulhub环境搭建

    Vulhub和DVWA一样,也是开源漏洞靶场,地址:https://github.com/vulhub/vulhub 环境搭建过程如下: 1. 下载和安装Ubuntu 16.04镜像,镜像地址:htt ...

  9. 【Django学习笔记】-环境搭建

    对于初学django新手,根据以下步骤可以快速进行Django环境搭建 虚拟环境创建 使用virtualenv创建并启用虚拟机环境 ,关于virtualenv可参考https://www.yuque. ...

随机推荐

  1. 《剑指offer》青蛙跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 很裸的斐波那契数列. class Solution { public: int jumpFloor ...

  2. ERP合同审核流程处理(二十九)

    合同审批流程: 前端的代码: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind=" ...

  3. HDU 3032 (SG打表找规律)

    题意: 有n堆石子,alice先取,每次可以选择拿走一堆石子中的1~x(该堆石子总数) ,也可以选择将这堆石子分成任意的两堆.alice与bob轮流取,取走最后一个石子的人胜利. 思路: 因为数的范围 ...

  4. 基于OSGI.NET的MVC插件式开发

    最近在研究OSGI.NET插件式开发框架.官方网站提供了一个基于OSGI.NET的插件仓库.下载官方的SDK包安装后VS项目模板会多出一组iOpenWorks项目模板.在学习过程中,发现通过iOpen ...

  5. Python 打印当前文件相对路径和绝对路径

    一.打印相对路径 print(__file__) 二.打印绝对路径 import os print(os.path.abspath(__file__)) 三.打印文件名 import os print ...

  6. BZOJ1801 [Ahoi2009]chess 中国象棋 动态规划

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ1801 题意概括 在N行M列的棋盘上,放若干个炮可以是0个,使得没有任何一个炮可以攻击另一个炮. 请 ...

  7. P1865 A % B Problem 素数筛

    题目描述 区间质数个数 输入输出格式 输入格式: 一行两个整数 询问次数n,范围m 接下来n行,每行两个整数 l,r 表示区间 输出格式: 对于每次询问输出个数 t,如l或r∉[1,m]输出 Cros ...

  8. hzy 和zsl 的生存挑战

    Problem Description zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战:1. zsl 和hzy两个人各自来到一间密室,期间两人无法以 ...

  9. 6-6 小球下落 uva679

    较为简单的找规律题目 开始认识二叉树  虽然这题和二叉树没有啥关系 #include<bits/stdc++.h> using namespace std; int main() { in ...

  10. dijkstra基础

    #include<iostream> #include<queue> #include<cstdio> #include<cstring> #inclu ...