Java靜態(tài)代碼塊加載驅動代碼實例
Demo1.funx();
String s=Demo1.string;
靜態(tài)代碼塊 會在new一個該類對象時調用
或者調用該類的靜態(tài)方法,靜態(tài)成員變量時調用
總之在類加載器將該類加載到內存中時 (無論是通過哪種方式) 都會調用靜態(tài)代碼塊
靜態(tài)成員變量 靜態(tài)代碼塊永遠只被初始化一次 無論new多少個對象
加載類時 初始化順序 靜態(tài)成員->靜態(tài)代碼塊 ->變量,初始化塊->構造函數(shù)
由于靜態(tài)代碼塊永遠只被加載一次的特性
常被用來加載配置文件 等初始化操作(單例模式)
例子
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();
}
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
關于java.util.Random的實現(xiàn)原理詳解
Java實用工具類庫中的類java.util.Random提供了產生各種類型隨機數(shù)的方法,下面這篇文章主要給大家介紹了關于java.util.Random實現(xiàn)原理的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下。2017-08-08
Springboot如何通過yml配置文件為靜態(tài)成員變量賦值
這篇文章主要介紹了Springboot如何通過yml配置文件為靜態(tài)成員變量賦值,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-10-10
基于Java中throw和throws的區(qū)別(詳解)
下面小編就為大家?guī)硪黄贘ava中throw和throws的區(qū)別(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-07-07
解決springboot中配置過濾器以及可能出現(xiàn)的問題
這篇文章主要介紹了解決springboot中配置過濾器以及可能出現(xiàn)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式
這篇文章主要介紹了使用自定義注解+springAop實現(xiàn)參數(shù)非空校驗方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

