问题?spring的定义及作用、spring的环境搭建

一、spring的定义及作用

1、spring由Rod Johnson创建的一个开源框架,它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。

2、Spring的核心是控制反转(IoC)和面向切面(AOP)

Spring的控制反转:把对象的创建、初始化、销毁等工作交给spring容器来做 。

Spring的面向切面:

二、spring环境的搭建

1、准备阶段:

jar包的准备:可以放入web应用下WebRoot/WEB-INF/lib下,并且BuildPath下。点击下载jar包链接

配置文件的准备:applicationContext.xml

注意:spring注解的默认编码是iso-8859-1

在spring开发手册可以找打,或者去spring核心包中去找,也可以找到。

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">

        <!-- id:标识符
        	 class:相应的对象类,放入容器中
        	 alias:别名,可写可不写,就是另外取一个名字
         -->   

        <!-- 这是第一种创建对象的方式:利用构造方法 -->
       <bean id="hello" class="cn.itcast.sh.spring.ioc.HelloWord"></bean>
       <alias name="hello" alias="王三"/>

       <!-- 这是第二种创建对象的方式:利用factory-method,静态工厂方法 -->
       <bean id="helloFactory" class="cn.itcast.sh.spring.ioc.HelloWordFactory" factory-method="getInstance"></bean>

       <!-- 这是第三种创建对象的方式:使用实例工厂方法实例化 -->
       <!-- <bean id="heillLocator" class="cn.itcast.sh.spring.ioc.HelloWordLocator" factory-bean="heillLocator" factory-method="getInstance"></bean>
        -->

        <!--  默认情况下是applicationContext.xml文件。可以建立很多xml文件将其引入 -->
       <import resource=""/>
</beans>

然后创建测试类:

package cn.itcast.sh.spring.ioc.test;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import cn.itcast.sh.spring.ioc.HelloWord;
import cn.itcast.sh.spring.ioc.HelloWordFactory;

public class IocTest {

	/**
	 *  spring创建对象的两种方式
	 *
	 */

	//第一种:调用默认的构造方法进行创建
	@Test
	public void IocT1(){
		/**
		 * 1.启动spring容器
		 * 2.从容器中拿出对象
		 * 3.然后由对象执行相应的操作
		 *
		 */
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		HelloWord helloWord = (HelloWord) context.getBean("王三");//取的是别名
		helloWord.hello();
	}

	//利用静态工厂来创建对象
	@Test
	public void IocT2(){
		ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		HelloWord factory = (HelloWord) context.getBean("helloFactory");
		factory.hello();
	}

	//利用实例工厂来创建对象
		@Test
		public void IocT3(){
			ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
			HelloWordFactory factory = (HelloWordFactory) context.getBean("heillLocator");
			factory.getInstance();
		}
}

用单元测试:看看是否能用容器建立的对象,是否能够正常的使用

spring环境的搭建及作用和定义<一>的更多相关文章

  1. 2018.12.20 Spring环境如何搭建

    Spring学习 1.导入spring约束 为后续创建xml文件做铺垫 2.开始搭建Spring环境 1.创建Web项目,引入spring的开发包(根据下面的图来引入) 2.引入jar包 coreCo ...

  2. Spring环境的搭建与测试 (spring2.5.6)

    这里是采用的视频里面的spring版本 下载spring2.5.6, 然后进行解压缩,在解压目录中找到下面jar文件,拷贝到类路径下 dist\spring.jar lib\jakarta-commo ...

  3. 1.spring环境的搭建

    1.app.config <?xml version="1.0" encoding="utf-8" ?><configuration> ...

  4. SSH三个主流框架环境的搭建

    part 1  Hibernate环境的搭建 part2  struts2环境的搭建 第一步:从struts2官网下载需要的各种资料和jar包 第二步:在ecplise里面创建web项目,然后在web ...

  5. Spring环境搭建之:导入jar包、配置文件名称及放置位置

    Spring环境搭建之:导入jar包.配置文件名称及放置位置 现在项目开发中spring框架应用的还是比较多的,自己用的还不太熟练,每次用的时候总配置半天,总有些配置弄错,就找个时间总结以下,方便以后 ...

  6. 移动商城第三篇【搭建Mybatis和Spring环境、编写Dao、Service在Core模块】

    Mybatis和Spring环境搭建 由于我们的所编写的dao层.service代码可能前台和后台都需要用到的,因此我们把环境搭建在core模块中 逆向工程 首先,我们要做的就是品牌管理,我们首先来看 ...

  7. 人生若只如初见---Spring概述以及环境的搭建

    Spring 是什么 Spring是由Apache开发的一种轻量型Java框架,能够更加便捷使用JavaBean(之前只有EJB才能实现) Spring的主要优势:分层架构: DAO层:(Data A ...

  8. 【Spring学习笔记-1】Myeclipse下Spring环境搭建

    *.hl_mark_KMSmartTagPinkImg{background-color:#ffaaff;}*.hl_mark_KMSmartTagBlueImg{background-color:# ...

  9. 工作笔记3.手把手教你搭建SSH(struts2+hibernate+spring)环境

    上文中我们介绍<工作笔记2.软件开发经常使用工具> 从今天開始本文将教大家怎样进行开发?本文以搭建SSH(struts2+hibernate+spring)框架为例,共分为3步: 1)3个 ...

随机推荐

  1. cocos2d menu菜单类

    // 在init这个函数当中做一些初始化的事情 bool HelloWorld::init() { ////////////////////////////// // 先构造父级对象 if ( !CC ...

  2. codevs 1507酒厂选址

    #include<cstdio> #include<cstdlib> using namespace std; int n; int dis[10010],a[10010],x ...

  3. shell条件与循环

    一.if语句 if [expression] then elif[expression] then else fi 注 : expression前后要有空格:判断相等用 = 而不是 == : then ...

  4. Graph database_neo4j 底层存储结构分析(6)

    3.6  Node 数据存储 neo4j 中, Node 的存储是由 NodeStore 和 ArrayPropertyStore 2中类型配合来完成的. node 的label 内容是存在Array ...

  5. winform学习之----打开文件对话框并将文件内容放入文本框

    OpenFileDialog ofg = new OpenFileDialog(); ofg.Title = "ddd";//设置对话框标题 ofg.Multiselect = t ...

  6. java利用JFreeChart实现各种数据统计图(柱形图,饼图,折线图)

    最近在做数据挖掘的课程设计,需要将数据分析的结果很直观的展现给用户,这就要用到数据统计图,要实现这个功能就需要几个第三方包了: 1.       jfreechart-1.0.13.jar 2.    ...

  7. Solve error: 'class vtkImageActor' has no member named 'SetInput'

    Replacement of SetInput() with SetInputData() and SetInputConnection() someFilter->SetInput(someR ...

  8. eval(gzinflate(base64_decode N层,自动解密

    <?php header("Content-type: text/html; charset=utf-8"); $decode = 'DZdFEsRWEkT3vojt0EJM ...

  9. [故障处理]联想笔记本故障0x0000007B

    同事笔记本故障,莫名其妙的快捷方式就找不到了.开始程序中的内容也无法正常查看. 解决步骤: 1.怀疑用户配置的问题,新建一个用户,没有解决. 2.使用自带的一键恢复ThinkVantage,恢复后,重 ...

  10. centos时间同步方法

    centos时间同步方法 电脑软硬件应用网 45IT.COM 时间:2012-12-08 18:09 作者:李本清 新装的服务器可能设置了错误的,需要调整时区并调整时间.如下是使用NTP来从一个时间服 ...