一:环境搭建
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 ,即可安装,可能需要FQ。
安装完成后重启,点击 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。方法中进行检测:如果对象存在,则直接返回;如果不存在,则创建。