Spring学习(一)
搭建环境
1、创建普通的Java工程
2、添加相应的jar包,下载链接:https://files.cnblogs.com/files/AmyZheng/lib.rar,此外,为了打印信息,我们还需要一个Apache Commons Logging API,在这里下载commons-logging-1.2。
3、jar包
- Spring核心必须依赖的库:commons-logging-1.1.1.jar
- Spring IoC部分核心库:
spring-beans-4.3.9.RELEASE.jar
spring-context-4.3.9.RELEASE.jar
spring-context-support-4.3.9.RELEASE.jar
spring-core-4.3.9.RELEASE.jar
spring-expression-4.3.9.RELEASE.jar
spring-web-4.3.9.RELEASE.jar ------> 支持在Web环境中使用Spring IoC容器
- Spring AOP部分核心库:
spring-aop-4.3.9.RELEASE.jar
spring-aspects-4.3.9.RELEASE.jar
- Spring AOP需要依赖于aspectj库:
aspectjrt.jar
aspectjweaver.jar
第一个实例
1、新建一个配置文件,用于配置和管理所有的bean。
beans.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd"> <bean id="birthdate" class="java.util.Date" /> <util:map map-class="java.util.HashMap" id="map">
<entry key="罗玉凤" value="30" />
<entry key="罗玉龙" value="40" />
</util:map> </beans>
每一个bean的Id唯一
2、新建Java测试类
package ecut.ioc.ex; import java.util.Date;
import java.util.Map; import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) {
//classpath和classpath下的所有jar包
System.out.println( System.getProperty( "java.class.path" ) );
//configLocations为不定参数,classpath当前工程下的bin目录下D:\java_workspace\java\Spring\bin;
String configLocations = "classpath:ecut/**/ex/beans.xml" ;
//String configLocations = "classpath:ecut/ioc/ex/beans.xml" ;
//String configLocations = "classpath:beans.xml" ;//若配置文件在src目录底下 // AbstractApplicationContext 实现了 org.springframework.context.ApplicationContext 接口
// ClassPathXmlApplicationContext 继承了 org.springframework.context.support.AbstractApplicationContext
AbstractApplicationContext context = new ClassPathXmlApplicationContext(configLocations);
//name 与xml中的bean标签的ID相对应
Date date = context.getBean( "birthdate", Date.class ); System.out.println( date ); Map<?,?> map = context.getBean( "map" , Map.class ); System.out.println( map );
//ApplicationContext没有close方法,AbstractApplicationContext
context.close(); } }
package ecut.ioc.ex; import java.util.Date;
import java.util.Map; import org.springframework.context.support.AbstractApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args) {
//classpath和classpath下的所有jar包
System.out.println( System.getProperty( "java.class.path" ) );
//configLocations为不定参数,classpath当前工程下的bin目录下D:\java_workspace\java\Spring\bin;
String configLocations = "classpath:ecut/**/ex/beans.xml" ;
//String configLocations = "classpath:ecut/ioc/ex/beans.xml" ;
//String configLocations = "classpath:beans.xml" ;//若配置文件在src目录底下 // AbstractApplicationContext 实现了 org.springframework.context.ApplicationContext 接口
// ClassPathXmlApplicationContext 继承了 org.springframework.context.support.AbstractApplicationContext
AbstractApplicationContext context = new ClassPathXmlApplicationContext(configLocations);
//name 与xml中的bean标签的ID相对应
Date date = context.getBean( "birthdate", Date.class ); System.out.println( date ); Map<?,?> map = context.getBean( "map" , Map.class ); System.out.println( map );
//ApplicationContext没有close方法,建议使用AbstractApplicationContext
context.close(); } }
因为ApplicationContext没有close方法,建议使用AbstractApplicationContext来创建一个spring 容器, 这个容器读取classpath(当前工程下的bin目录)下的配置文件,并由容器去创建相应的对象,最后提供getBean方法获取name( 与xml中的bean标签的Id相对应)所指定的对象。
转载请于明显处标明出处
https://www.cnblogs.com/AmyZheng/p/9243783.html
Spring学习(一)的更多相关文章
- spring 学习之 bean 的注入方式 property和constructor-arg的使用方式
spring 学习之 bean 的注入方式 property和constructor-arg的使用方式. bean的注入方式: property 注入是: 通过setxx方法注入. construct ...
- Spring学习之AOP总结帖
AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对组件(比如类)进行开发,然后对组件进行组 ...
- Spring学习之第一个AOP程序
IOC和AOP是Spring的两大基石,AOP(面向方面编程),也可称为面向切面编程,是一种编程范式,提供从另一个角度来考虑程序结构从而完善面向对象编程(OOP). 在进行 OOP 开发时,都是基于对 ...
- MyEclipse Spring 学习总结三 SpringMVC
MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...
- Spring学习 Ioc篇(一 )
一直以来忙于项目的开发,Spring虽然不用,一直想系统地学习一下,想看看它的源码,都没有时间,这段时间比较充裕,就索性先把Spring学习下,熟悉各个功能再去探究它内部的实现.就从Ioc篇开始学习. ...
- Spring学习(三)——Spring中的依赖注入的方式
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring.不知 ...
- Spring学习(二)——Spring中的AOP的初步理解[转]
[前面的话] Spring对我太重要了,做个关于web相关的项目都要使用Spring,每次去看Spring相关的知识,总是感觉一知半解,没有很好的系统去学习一下,现在抽点时间学习一下Spring. ...
- 【Spring学习笔记-MVC-3.1】SpringMVC返回Json数据-方式1-扩展
<Spring学习笔记-MVC>系列文章,讲解返回json数据的文章共有3篇,分别为: [Spring学习笔记-MVC-3]SpringMVC返回Json数据-方式1:http://www ...
- Spring学习8-Spring事务管理
http://blog.sina.com.cn/s/blog_7ffb8dd501014e0f.html Spring学习8-Spring事务管理(注解式声明事务管理) 标签: spring注 ...
- Spring学习之Ioc控制反转(1)
开始之前: 1. 本博文为原创,转载请注明出处 2. 作者非计算机科班出身,如有错误,请多指正 ---------------------------------------------------- ...
随机推荐
- 数据库程序接口——JDBC——API解读第一篇——建立连接的核心对象
结构图 核心对象 Driver Java通过Driver接口表示驱动,每种类型的数据库通过实现Driver接口提供自己的Driver实现类. Driver由属性,操作,事件三部分组成. 属性 公共属性 ...
- 设备驱动基础学习--/proc下增加节点
在需要创建一个由一系列数据顺序组合而成的/proc虚拟文件或一个较大的/proc虚拟文件时,推荐使用seq_file接口. 数据结构struct seq_fille定义在include/linux/s ...
- 零基础入门python爬虫(一)
✍写在前面: 欢迎加入纯干货技术交流群Disaster Army:317784952 接到5月25日之前要交稿的任务我就一门心思想写一篇爬虫入门的文章,可是我并不会.还好有将近一个月的时间去学习,于是 ...
- Bugku-CTF加密篇之+[]- (+++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ++++[ ->.........)
+[]- +++++ +++++ [->++ +++++ +++<] >++.+ +++++ .<+++ [->-- -<]>- -.+++ +++.< ...
- 获取浏览器url参数
//获取浏览器url参数 var methods ={ getQueryString: function (name) { var reg = new RegExp('(^|&)' + nam ...
- TensorFlow:使用inception-v3实现各种图像识别
程序来自博客: # https://www.cnblogs.com/felixwang2/p/9190740.html上面这个博客是一些列的,所以可以从前往后逐一练习. # https://www.c ...
- vue-webpack模板升级到webpack4
本文仅简单记录下基于vue-webpack模板升级到webpack4的过程 快速部署 Vue CLI 的包名称由 vue-cli 改成了 @vue/cli # 全局安装 vue-cli $ npm i ...
- cnpm - 解决 " cnpm : 无法加载文件 C:\Users\93457\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。有关详细信息 。。。 "
1.在win10 系统中搜索框 输入 Windos PowerShell选择 管理员身份运行 2,打开了powershell命令行之后,输入 set-ExecutionPolicy RemoteSig ...
- mac机器smb映射
1 finder中打开前往 2 输入:smb://10.216.90.* 链接 3 输入 账户和密码(名称和密码是你机器的smb密码:比如123***)
- C语言:判断t所指字符串中的字母是否由连续递增字母组成。-判断一个输入的任何整数n,是否等于某个连续正整数序列之和。-将一副扑克牌编号为1到54,以某种方式洗牌,这种方式是将这副牌分成两半,然后将他们交叉,并始终保持编号1的牌在最上方。
//判断t所指字符串中的字母是否由连续递增字母组成. #include <stdio.h> #include <string.h> void NONO(); int fun( ...