Spring复杂对象怎么创建
发表于:2025-11-18 作者:千家信息网编辑
千家信息网最后更新 2025年11月18日,本文小编为大家详细介绍"Spring复杂对象怎么创建",内容详细,步骤清晰,细节处理妥当,希望这篇"Spring复杂对象怎么创建"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧
千家信息网最后更新 2025年11月18日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安全错误
数据库的锁怎样保障安全
软件开发面临哪些法律风险
无线网络连接说服务器名称无效
软件开发初学者用书
南京环保软件开发销售方法
网络安全教育6课
近五年发生的网络安全大事件
linux系统查看数据库
专业数据库图片
用友t3进入数据库
无权访问服务器上的URL怎么办
联网发票软件开发
数据库检索学生学号
数据库千万级别数据同步需要多久
拨号提示无法连接服务器
湖南邮箱提取外贸软件开发
网络安全保障措施落实
网络安全流量数据监测
大邑县计算机网络技术培训好
服务器监控管理工具
推广软件开发加盟商市场价格
数据库安全审计内容和机制
安装两个版本数据库吗
华为网络技术大赛训练题初级
贷款口子返佣软件开发
企业档案管理数据库表设计
西安网络技术公司
centos上数据库怎么装
香港太平洋网络技术公司地址
网络技术与控制
好几年没有入门软件开发