Spring复杂对象怎么创建
发表于:2025-01-26 作者:千家信息网编辑
千家信息网最后更新 2025年01月26日,本文小编为大家详细介绍"Spring复杂对象怎么创建",内容详细,步骤清晰,细节处理妥当,希望这篇"Spring复杂对象怎么创建"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2025年01月26日Spring复杂对象怎么创建
本文小编为大家详细介绍"Spring复杂对象怎么创建",内容详细,步骤清晰,细节处理妥当,希望这篇"Spring复杂对象怎么创建"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
什么是复杂类型,比如连接数据库的Connection对象,以及Mybatis中的SqlSessionFactory对象。
在以前我们是通过这种方式获取Connection对象的:
Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "123456"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); }
现在使用Spring如何创建这种类型的对象?Spring中提供了三种方法来创建复杂对象
第一种:实现FactoryBean接口
public class ConnectionFactoryBean implements FactoryBean{ //用于书写创建复杂对象的代码 @Override public Connection getObject() throws Exception { Class.forName(driverClassName); Connection conn = DriverManager.getConnection(url, username, password); return conn; } @Override public Class> getObjectType() { return Connection.class; } @Override public boolean isSingleton() { return true; } private String driverClassName; private String url; private String username; private String password; //setter and getter省略
在applicationContext.xml配置文件中
对这种使用的解读:FactoryBean接口中有三个抽象方法
○ 如果就想获得FactoryBean类型的对象 ctx.getBean("&conn")
获得就是ConnectionFactoryBean对象
○ isSingleton方法
返回 true 只会创建一个复杂对象
返回 false 每一次都会创建新的对象
问题:根据这个对象的特点 ,决定是返回true (SqlSessionFactory) 还是 false (Connection)
○ mysql高版本连接创建时,需要制定SSL证书,解决问题的方式
注意:类中的几个连接数据库的属性,是自己添加的,便于在配置文件中注入,实现解耦合。
第二种方法:实例工厂 避免Spring框架的侵入整合遗留系统
直接在这个类写创建复杂对象的方法,不用实现FactoryBean接口。
public class ConnectionFactory { public Connection getConnection(){ Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "123456"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }}
但是要在配置文件中进行配置
第三种方式:静态工厂
和实例工厂类似,只不过这里把实例方法,替换为静态方法。
public class StaticConnectionFactory { public static Connection getConnection(){ Connection conn = null; try { Class.forName("com.mysql.cj.jdbc.Driver"); conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql", "root", "123456"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } return conn; }}
对应配置文件配置如下:
读到这里,这篇"Spring复杂对象怎么创建"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
对象
复杂
方法
配置
文件
实例
工厂
接口
文章
方式
类型
会创
内容
数据
数据库
问题
静态
妥当
三个
不用
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
帝特网络技术有限公司
合肥 桐城路 软件开发
青岛软件开发王虓
服务器地址被占用了怎么办
南山区什么网络技术开发经验丰富
游戏服务器经常掉线怎么回事
前台web与后台数据库如何连接
马鞍山hpe高密度服务器多少钱
香河县网络安全
肇庆通信软件开发供应商
Sekiro是哪个服务器
华为手机老是显示连接不到服务器
成都环保行业平台软件开发
服务器采购论证会专家意见
我的世界最大的服务器
网络安全备案是什么
上海购买网络技术转让价目表
互联网大会 海航科技
镇江春雨网络技术有限公司
软件开发工程师现实生活状况
西电网络安全周
深圳小腻网络技术有限公司
梦幻手游星光在那个服务器
路北区项目网络技术不二之选
武汉培训软件开发班
net开发网页中插入数据库数据
戴尔服务器r440设置通电开机
中国高校网络安全学院
万事达网络安全运维中标
哈尔滨百川互联网科技