spring学习笔记--IOC接口
要引入的jar包
==其中,日志jar包不在spring官方文件中,要另外下载,链接:spring相关jar包免费下载
例子:
public class TestSpring5 {@Testpublic void testAdd(){// spring加载配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean1.xml");
// 获取配置对象 创建配置对象User user = context.getBean("user", User.class);System.out.println(user);user.add();}
}
IOC接口
- 1、Spring提供IOC容器实现的两种方式:(两个接口)
- a)、BeanFactory:IOC容器基本实现,是Spring内部的使用接口,一般不提供给开发者使用
- 加载配置文件时,不会创建配置对象,在使用对象时才创建对象(用的时候才创建)
- b)、ApplicationContext:是BeanFactory接口的子接口,提供更多更强大的功能,一般由开发人员使用
- 加载配置文件时,就创建配置对象
- 这个接口比较好,将启动时间拉长(启动时就创建对象,启动时间相对较长),但使用的时间损耗减少,用户体验提升
注:两个接口都能加载spring配置文件,然后创建配置对象
- a)、BeanFactory:IOC容器基本实现,是Spring内部的使用接口,一般不提供给开发者使用
- 2、ApplicationContext接口的实现类(IDEA
Ctrl + H
查看)- 这是ApplicationContext接口的两个主要实现类
- 以下部分内容来自:https://blog.csdn.net/hbs321123/article/details/38824091
- a)、使用
FileSystemXmlApplicationContext
(文件系统
)时://当前路径加载单个配置文件ApplicationContext context = new FileSystemXmlApplicationContext("spring-config.xml"); String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};//同时加载多个配置文件ApplicationContext context = new FileSystemXmlApplicationContext(locations );//根据具体路径加载文件ApplicationContext context = new FileSystemXmlApplicationContext("D:/project/bean.xml");
- 也就是若在Project目录下,可以不加盘符,否则,应该写入绝对路径
- b)、使用
ClassPathXmlApplicationContext
时 //加载单个配置文件ApplicationContext context = new ClassPathXmlApplicationContext("bean.xml");String[] locations = {"bean1.xml", "bean2.xml", "bean3.xml"};//同时加载多个配置文件。ApplicationContext context = new ClassPathXmlApplication(locations);//用通配符同时加载多个配置文件: 加前缀 classpath:ApplicationContext context = new ClassPathXmlApplicationContext("classpath:/*.xml");
- 其中FileSystemXmlApplicationContext和ClassPathXmlApplicationContext与BeanFactory的xml文件定位方式一样是基于路径的。
- c)、例子
public static void main(String[] args) {ApplicationContext factory = null;// 用classpath路径,用ClassPathXmlApplicationContext类时,有没有classpath:前缀都是一样的。factory = new ClassPathXmlApplicationContext("classpath:appcontext.xml");factory = new ClassPathXmlApplicationContext("appcontext.xml");// ClassPathXmlApplicationContext使用了file前缀是可以使用绝对路径的。factory = new ClassPathXmlApplicationContext("file:F:/workspace/example/src/appcontext.xml");// 用文件系统的路径,默认指项目的根路径factory = new FileSystemXmlApplicationContext("src/appcontext.xml");factory = new FileSystemXmlApplicationContext("webRoot/WEB-INF/appcontext.xml");// 使用了classpath:前缀,这样,FileSystemXmlApplicationContext也能够读取classpath下的相对路径factory = new FileSystemXmlApplicationContext( "classpath:appcontext.xml");// 加不加file前缀都是一样的。factory = new FileSystemXmlApplicationContext("file:F:/workspace/example/src/appcontext.xml");factory = new FileSystemXmlApplicationContext("F:/workspace/example/src/appcontext.xml");HelloClient hw = (HelloClient) factory.getBean("helloworldbean");}
- 这是ApplicationContext接口的两个主要实现类
spring学习笔记--IOC接口相关推荐
- JavaEE——Spring学习笔记01【Ioc开发的模式】
JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...
- spring学习笔记01-BeanFactory和ApplicationContext的区别
spring学习笔记01-BeanFactory和ApplicationContext的区别 BeanFactory 和 ApplicationContext 的区别 BeanFa ...
- JavaEE——Spring学习笔记03【AOP开发】
JavaEE--Spring学习笔记01[Ioc开发的模式] JavaEE--Spring学习笔记02[Spring和Mybatis的整合] JavaEE--Spring学习笔记03[AOP开发] J ...
- CHY的Spring学习笔记---师从动力节点王鹤老师(B站白嫖)
Spring学习笔记 核心技术:ioc和aop ioc:使用di(依赖注入)实现控制反转,底层使用的是反射机制 spring可以创建自己写的类的对象,也可以创建非自定义对象,只要知道类的全限定名即可. ...
- Spring学习笔记(三) AOP_annotation,AOP_XML
在学习课程以前,听说AOP有种很神秘的感觉,好像很好深的技术.其实原理很简单,使用动态代理的方式给程序增加逻辑.与此相似的有struts2中的filter拦截器. 再讲AOP之前先把需求说一下: 同S ...
- spring学习笔记03-spring-DI-依赖注入详解(通过xml配置文件来配置依赖注入)
spring学习笔记03-spring-DI-依赖注入详解 1.概念 2.构造函数注入 3.set方法注入 4.集合的注入 需要被注入的实体对象 package com.itheima.service ...
- Spring学习笔记之MyBatis
系列文章目录 Spring学习笔记 之 Springhttps://blog.csdn.net/weixin_43985478/article/details/124411746?spm=1001.2 ...
- 【Spring学习笔记 九】Spring声明式事务管理实现机制
什么是事务?事务就是把一系列的动作当成一个独立的工作单元,这些动作要么全部完成,要么全部不起作用,关乎数据准确性的地方我们一定要用到事务,防止业务逻辑出错. 什么是事务管理,事务管理对于企业应用而言至 ...
- Spring 学习笔记----->AOP
Spring 学习笔记----->AOP 代理模式 为什么学代理模式? 因为这就是Spring Aop的底层 代理模式的分类: 静态代理 动态代理 静态代理 生活用的例子: 房东 public ...
最新文章
- 删除重复字符串的算法
- SpringBoot框架:入门篇
- 算法课题(一) 贪心算法
- Java NIO学习系列三:Selector
- mongodb用户管理简单记录
- Java:重写equals()和hashCode() 1
- 验证方式二 html标签验证码,Django标签、转义及验证码生成
- 大数据:技术与应用实践指南
- 【转】404、500、502等HTTP状态码介绍
- 极佳mysql数据库碎片恢复工具,极佳SQL数据库日志恢复工具
- 手机刷入面具_【手机改造计划】搞机助手 - 小白刷机必备工具,搞机一条龙:解锁、root、刷面具、刷xposed框架、模块下载安装、自动救砖...
- 功能测试项目——酒店管理系统
- WebGL中实现三维融合视频投影技术
- java后台数据传到前台的流程_java serlve后台数据传到前台
- malloc与calloc
- Linux二进制方式安装mysql8
- 使用wget下载GEO数据
- mvn 执行 install 或者 compil 错误
- linux取证工具,【FastIR Collector Linux---让Linux取证更简单】
- 范特西公司面试2012/10/23
热门文章
- 机器学习--支持向量机(五)核函数详解
- c语言中.和-区别,c语言中-和.的区别
- java动态是如何根据实体建表_传入Java对象 自动创建动态表 并录入数据
- 解决element-ui中表格行点击事件和表格单元格点击事件冲突的问题
- 计算机四级笔试1,9月全国计算机等级考试四级网络工程师笔试试卷(1)
- 循环减肥c语言,最好的减肥方法
- Ajax案例-基于XML,以POST方式,完成省份-城市二级下拉联动
- 《Java编程思想》笔记14.类型信息
- JavaScript常用DOM操作方法和函数
- oracle load data infile