Java静态代码块加载驱动代码实例
Demo1.funx();String s=Demo1.string;
静态代码块 会在new一个该类对象时调用
或者调用该类的静态方法,静态成员变量时调用
总之在类加载器将该类加载到内存中时 (无论是通过哪种方式) 都会调用静态代码块
静态成员变量 静态代码块永远只被初始化一次 无论new多少个对象
加载类时 初始化顺序 静态成员->静态代码块 ->变量,初始化块->构造函数
由于静态代码块永远只被加载一次的特性
常被用来加载配置文件 等初始化操作(单例模式)
例子
static { Configuration cfg = new Configuration(); // cfg.configure(); // ��ȡĬ�ϵ������ļ���hibernate.cfg.xml�� // // cfg.configure('hibernate.cfg.xml'); // ��ȡָ��λ�õ������ļ� // sessionFactory = cfg.buildSessionFactory(); // cfg.addResource('cn/itcast/a_helloworld/User.hbm.xml'); // cfg.addClass(User.class); // ȥUser�����ڵİ��в������ΪUser����Ϊ.hbm.xml���ļ� // ��ʼ��SessionFactory sessionFactory = new Configuration()// .configure()// .buildSessionFactory(); }
加载驱动
private static Properties props = null;static{ try { //获取Property配置 并初始化 加载流到prop中 InputStream inputStream=JdbcUtils.class.getClassLoader().getResourceAsStream('dbconfig.properties'); props=new Properties(); props.load(inputStream); } catch (IOException e) { throw new RuntimeException(); } try { //加载驱动类 Class.forName(props.getProperty('driverClassName')); } catch (ClassNotFoundException e) { throw new RuntimeException(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。
相关文章:
1. docker /var/lib/docker/aufs/mnt 目录清理方法2. python+excel接口自动化获取token并作为请求参数进行传参操作3. Vuex localStorage的具体使用4. ASP.NET泛型三之使用协变和逆变实现类型转换5. python tkinter实现下载进度条及抖音视频去水印原理6. vue - props 声明数组和对象操作7. Notepad++如何安装Python插件?Notepad++插件怎么装?8. Web应用开发中的几个问题——使用javascript开发需知9. Python matplotlib画图时图例说明(legend)放到图像外侧详解10. 使用Android studio查看Kotlin的字节码教程

网公网安备