zoukankan      html  css  js  c++  java
  • 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。方法中进行检测:如果对象存在,则直接返回;如果不存在,则创建。 

  • 相关阅读:
    jS Ajax 上传文件报错"Uncaught TypeError: Illegal invocation"
    layer实现关闭弹出层刷新父界面功能详解
    PHP开发APP接口简单签名全过程(二)实际测试
    PHP开发APP接口简单签名全过程(一)
    Laravel 避免 Trying to get property of non-object 错误的六种方法 [新增第六种 data_get]
    在PHP代码中将HTML代码原样输出的方式
    在使用 Laravel Eloquent 模型时,我们要判断取出的结果集是否为空,但我们发现直接使用 is_null 或 empty是无法判段它结果集是否为空的!!!
    使用layer的iframe层提交表单后,需要关闭当前的iframe层,然后刷新父页面的方法
    laravel中如何实现验证码验证及使用
    递归思想的由来
  • 原文地址:https://www.cnblogs.com/ygj0930/p/8257067.html
Copyright © 2011-2022 走看看