java创建容器对象的类是什么_spring容器创建bean对象的方式
xml文件中有bean的配置,而且这个bean所对应的java类中存在一个无参构造器
那么这个时候spring容器就可以使用反射调用无参构造器来创建实例了(常规的方式)
通过工厂类获得实例(工厂类实现了接口FactoryBean>
注意spring中的PropertyPlaceholderConfigurer类的使用,在htmlsingle中直接搜索类名即可
例如:
//工厂类实现指定接口并且实现接口中的三个抽象方法:
public class ConnectionFactory implements FactoryBean{privateString driver;privateString url;privateString username;privateString password;
@Overridepublic Connection getObject() throwsException {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,username,password);returnconn;
}
@Overridepublic booleanisSingleton() {return false;
}
@Overridepublic ClassgetObjectType() {return Connection.class;
}
set/get
....
}
xml文件:
下面配置的这个类,可以自动的帮我们去读取指定的properties文件的内容,文件中用key-value的形式存放数据
读完之后我们就可以用${key}这种形式去拿文件中的value值了
在htmlsingle中直接搜索类名即可得到相关配置样例
classpath指的是从src下面找.
classpath:oracle.properties
因为这个类是一个工厂类,所以我们用名字conn在容器中拿对象的时候,
拿到并不是这个工厂类对象,而是这个工厂类对象调用完工厂方法后所返回的对象.
${driver}
${url}
${username}
${password}
main:
String path = "com/briup/ioc/factory/factory.xml";
ApplicationContext container=
newClassPathXmlApplicationContext(path);
Connection conn=(Connection)container.getBean("conn");
System.out.println(conn);
通过实例工厂获得bean对象(不需要实现或者继承任何接口或者父类),就是一个普通的工厂实例instanceFactory
//一个普通的工厂类
public classConnectionFactory{privateString driver;privateString url;privateString username;privateString password;public Object getConnection() throwsException {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,username,password);returnconn;
}
get/set
....
}
xml文件:
classpath:oracle.properties
${driver}
${url}
${username}
${password}
main:
String path = "com/briup/ioc/instanceFactory/instanceFactory.xml";
ApplicationContext container=
newClassPathXmlApplicationContext(path);
Connection conn=(Connection)container.getBean("conn");
System.out.println(conn);
通过静态工厂获得实例
例如
//静态工厂类
public classConnectionFactory{private static String driver =
"oracle.jdbc.driver.OracleDriver";private static String url =
"jdbc:oracle:thin:@127.0.0.1:1521:XE";private static String username = "briup";private static String password = "briup";public static Object getConnection() throwsException {
Class.forName(driver);
Connection conn=DriverManager.getConnection(url,username,password);returnconn;
}
}
xml文件:
main:
String path = "com/briup/ioc/staticFactory/staticFactory.xml";
ApplicationContext container=
newClassPathXmlApplicationContext(path);
Connection conn=(Connection)container.getBean("conn");
System.out.println(conn);
java创建容器对象的类是什么_spring容器创建bean对象的方式相关推荐
- 170630、springboot编程之普通类中调用spring管理的bean对象
我们知道如果我们要在一个类使用spring提供的bean对象,我们需要把这个类注入到spring容器中,交给spring容器进行管理,但是在实际当中,我们往往会碰到在一个普通的Java类中,想直接使用 ...
- java基础 通过继承Thread类和实现Runnable接口创建线程
java 创建线程 Java中,线程也是一种对象,但不是任何对象都可以成为线程. 只有实现了Runnable接口或继承了Thread类的对象才能成为线程. 继承Thread类 //格式: class ...
- python中简述对象和类的关系_Python笔记-习题42 对象、类及从属关系
1.研究一下为什么Python添加了这个奇怪的叫做object的类,它究竟有什么含义呢? A:Python中一切皆对象,创建的类皆以object为基类(父类),默认继承继承基类的属性和方法 Pytho ...
- IOC容器创建bean对象的4种方式
前言: Spring容器创建bean对象,一般通过反射机制查找bean元素的class属性值来找到要实例化的类,从而实例化bean对象.这便是调用构造方法来实例化bean对象 在某些情况下,若采用简单 ...
- 经过前面几天的学习已经初步了解到了Java 今天开始学习Java的 对象与类
在了解对象与类之前,首先先学习方法 01.方法概述 概述:说白了就是用来存储一段代码 特点: 方法只有先定义才能使用 方法不会自动执行,必须调用才会执行(方法不调用,不会执行) 02.方法定义和调用( ...
- java object对象的方法_Java常见对象Object类中的个别方法
Java常见对象Object类 public int hashCode() : 返回该对象的哈希码值. 注意:哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但是不是实际地址值.你可以理解成 ...
- 【SpringBoot】在普通类中获取spring容器中的bean
这段时间公司搞封闭开发,做一个联通总部的客服系统项目,是基于springboot的.在开发工程中遇到一个页面datagrid数据排序的功能,因为有多个表的数据都要用到排序功能,于是我就写了一个排序功能 ...
- javascript对象、类与原型链
js是一个基于对象的语言,所以本文研究一下js对象和类实现的过程和原理. 对象的属性及属性特性 下面是一个对象的各个部分: var person = {name: "Lily",a ...
- scala的伴生类和伴生对象所属类是什么?
文章目录 说在前面 运行原理 代码体现 解析 说在前面 scala是纯面向对象的语言,C是纯面向过程的语言,Java就是面向过程+面向对象的语言. 在说到伴生对象之前,要先说到java的static关 ...
- Java基础语法68-抽象类练习
Java基础语法68-抽象类练习 编写工资系统,实现不同类型员工(多态)的按月发放工资.如果当月出现某个 Employee对象的生日,则将该雇员的工资增加100元. 实验说明: (1) 定义一个Emp ...
最新文章
- iOS开发之加载大量网络图片优化
- opencv 显示图片
- SpringBoot2.0实现静态资源版本控制
- 如何修改 匿名类型 中的属性值 ?
- P5787 二分图 /【模板】线段树分治
- Vue学习笔记(3)(Vue CLI)
- js实现复制html页面
- container_of宏定义分析---linux内核
- mysql和redis之间互相备份
- 计算机应用入学考试,本科计算机应用入学考试模拟试题.doc
- 平面设计ai教程笔记
- XenApp_XenDesktop_7.6实战篇之十七:XenApp应用程序交付
- 清华计算机网络所教授张,2019计算机考研清华大学计算机网络技术研究所简介...
- 软考初级程序员---题目(七)
- 安装GLPI资产管理
- [精简]托福核心词汇78
- 数据库服务器的打开方式
- 高德视觉技术中心招聘计算机视觉研发(社招/校招/实习岗位)
- 环球好货VIP会员首次建群的方法及话术
- TensorFlow 线性代数编译框架 XLA
热门文章
- 腾讯云-Linux 基础入门
- PgSQL · 特性分析 · 金融级同步多副本分级配置方法
- maven常用插件: 打包源码 / 跳过测试 / 单独打包依赖项
- 版本设置X:none node Title golang版本错误
- cygwin+hadoop+eclipse (三) 运行wordcount实例
- excel_applications
- 工作组下安装ISA Server 2004
- ios的Navigation Controller的学习使用
- Element-UI合集之el-select
- linux php yii安装教程,Linux 安装php 5.4 – yii2 环境