Spring 解耦反射创建对象
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;/*** 程序的耦合* 耦合:程序间的依赖关系* 包括:* 类之间的依赖* 方法间的依赖* 解耦:* 降低程序间的依赖关系* 实际开发中:* 应该做到:编译期不依赖,运行时才依赖。* 解耦的思路:* 第一步:使用反射来创建对象,而避免使用new关键字。既用Class.forName* 第二步:通过读取配置文件来获取要创建的对象全限定类名**/
public class JdbcDemo {public static void main(String[] args) throws Exception{DriverManager.registerDriver(new com.mysql.jdbc.Driver());//1.注册驱动// Class.forName("com.mysql.jdbc.Driver");Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/eesy","root","1234");//2.获取连接PreparedStatement pstm = conn.prepareStatement("select * from account");//3.获取操作数据库的预处理对象ResultSet rs = pstm.executeQuery();//4.执行SQL,得到结果集while(rs.next()){//5.遍历结果集System.out.println(rs.getString("name"));}rs.close();pstm.close();conn.close();}
}
Spring 解耦反射创建对象相关推荐
- java 反射创建对象并赋值_java使用反射创建并操作对象的方法
Class 对象可以获得该类里的方法(由 Method 对象表示).构造器(由 Constructor 对象表示).成员变量(由 Field 对象表示),这三个类都位于 java.lang.refle ...
- spring解耦原理
spring解耦原理 普通java代码实现功能 class Zhang{void doSome(){Xing xi=new Xing();Xi.doSome();XXX x = new XXX();x ...
- 反射创建对象_面试题汇集——java反射
反射是动态获取信息以及动态调用对象的方法,在运行状态中,对于任意一个类,都能够知道这个类中的所有属性和方法:并且对于任意一个对象,都能够调用它的任意一个方法. 1.除了使用new创建对象之外,还可以用 ...
- Spring通过工厂创建对象的三种方法详解(工厂设计模式)
1.场景描述 在创建对象的过程中,常常创建出的对象并不能直接使用,它可能需要若干步复杂的步骤,处理完成后才能正常使用.比如有一个网络连接的类NetConn,类中有加载配置文件的方法load(),测试网 ...
- Spring 解耦工厂模式
public class BeanFactory {private static Properties props;//定义一个Properties对象private static Map<St ...
- 通过反射创建对象和调用方法
1.反射创建对象,该对象有一个无参的构造方法 //reflect.User表示User类的全路径 User user = (User) Class.forName("reflect.User ...
- 如何通过反射创建对象
通过反射创建对象的两种方法: 通过Class字节码对象newInstance();(默认通过无参构造创建) 通过获取构造器getConstructor(Class<?>-parameter ...
- java 反射 对象的方法_java通过反射创建对象并调用方法
这篇文章主要介绍了java通过反射创建对象并调用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用户类 package com.lf.ent ...
- 通过反射创建对象的几种方式
通过反射创建对象的几种方式 public static void main(String args []) throws Exception {//这个是获得cat类的类对象.Class catcls ...
最新文章
- 在DataTable中更新、删除数据
- php 比较数组中的元素,php – 比较多维数组中的元素
- 1060 爱丁顿数 (25 分)(思维)
- 华农计算机科学宿舍在哪个区,新生指南Ⅵ | 住在华农·看看我们第二个家
- thymeleaf th:href url传递多参数
- php 数组是否属于迭代器,数组的迭代器属性Iterator介绍
- iphone最新款手机_苹果用户不换安卓手机的8点原因,最后一点最关键
- windbg-内存破坏实例分析
- Hadoop生态圈介绍
- Angualr 输入文本框监听enter回车键和esc键方法使用(附常用的键盘事件对应的键码)
- 强烈推荐 16 款 IDEA 插件,让你的开发速度飞起来!
- IDM6.39最新版补丁新增功能介绍
- 图漾科技招聘|机器视觉算法、嵌入式驱动开发高级工程师等岗位
- ear的英语怎么念_鸡娃英语的你,需要翻越三座大山
- 新一代垃圾回收器ZGC
- android:layout_gravity=end,android layout_gravity 和gravity
- 【基础阶段】01中华人民共和国网络安全法
- 求长方形的周长和面积c语言两个函数_C语言及程序设计.第四课.项目2.计算长方形周长和面积...
- 用Engauge Digitizer软件提取文献中的数据
- 数字音频总线A2B开发详解二十三:ADAU1701做的功放板的音效(26个例程)(第三部分)
热门文章
- ListView列排序功能实现
- 46 - 算法 -Leetcode-141-环形链表-快慢指针
- eclipse终止端处的加载主类错误
- Python内置函数eval()用法及其安全问题
- simulink仿真实例_又见Simulink库模型之(9):自定义函数
- android中的多渠道打包,Android 多渠道打包简析
- group by用法 mysql_MYSQL GROUP BY用法详解
- 计算机考研408的优势和劣势,21考研:杭州电子科技大学计算机改考408!透露2个信号,咋整?...
- linux 备份mysql_linux下备份MYSQL数据库的方法
- .net 获取xml里面的值_Java-XML技术