`

HIbernate的单例例子

阅读更多
例子一:

 

public final class XMLHelper {

	public static final EntityResolver DEFAULT_DTD_RESOLVER = new DTDEntityResolver();

	private DOMReader domReader;
	private SAXReader saxReader;

	/**
	 * @param errorHandler the sax error handler
	 * @param entityResolver an xml entity resolver
	 *
	 * @return Create and return a dom4j {@code SAXReader} which will append all validation errors
	 *         to the passed error list
	 */
	public SAXReader createSAXReader(ErrorHandler errorHandler, EntityResolver entityResolver) {
		SAXReader saxReader = resolveSAXReader();
		saxReader.setEntityResolver( entityResolver );
		saxReader.setErrorHandler( errorHandler );
		return saxReader;
	}

	private SAXReader resolveSAXReader() {
		if ( saxReader == null ) {
			saxReader = new SAXReader();
			saxReader.setMergeAdjacentText( true );
			saxReader.setValidation( true );
		}
		return saxReader;
	}

	
	
	
}



这里在createSAXReader方法的第一行就调用了resolveSAXReader(),
后者检查了saxReader是否为空, 如果为空, 则创建新的。
不为空则返回类的内部实例saxReader.



========================================================================

例子二:

package org.hibernate.internal.util;

/**
 * This exists purely to allow custom ClassLoaders to be injected and used
 * prior to ServiceRegistry and ClassLoadingService existence.  This should be
 * replaced in Hibernate 5.
 * 
 * @author Brett Meyer
 */
public class ClassLoaderHelper {
	
	public static ClassLoader overridenClassLoader = null;
	
	public static ClassLoader getContextClassLoader() {
		return overridenClassLoader != null ?
			overridenClassLoader : Thread.currentThread().getContextClassLoader();
	}
}


这里通过thread获取了Context classloader
官方api如下:

Returns the context ClassLoader for this Thread. The context ClassLoader is provided by the creator of the thread for use by code running in this thread when loading classes and resources. If not set, the default is the ClassLoader context of the parent Thread. The context ClassLoader of the primordial thread is typically set to the class loader used to load the application.

If a security manager is present, and the invoker's class loader is not null and is not the same as or an ancestor of the context class loader, then this method invokes the security manager's checkPermission method with a RuntimePermission("getClassLoader") permission to verify that retrieval of the context class loader is permitted.

Returns:
the context ClassLoader for this Thread, or null indicating the system class loader (or, failing that, the bootstrap class loader)
Throws:
SecurityException - if the current thread cannot get the context ClassLoader
Since:
1.2
分享到:
评论

相关推荐

    android hibernate demo例子

    在这个"android hibernate demo例子"中,开发者可能使用了一个特殊的方法或者第三方库来使Hibernate在Android上运行。 这个"OrmDemo"项目包含以下关键组件: 1. **实体类(Entity Classes)**:这些是与数据库表...

    hibernate 例子及一些数据配置例子

    本资料包"hibernate 例子及一些数据配置例子"提供了一些关于如何使用Hibernate进行数据库操作的实际示例和配置文件,主要针对初学者和那些希望深入理解Hibernate的人。 1. **Hibernate基本概念** - Hibernate是一...

    struts2hibernate例子.zip

    4. **单例模式**:在Java应用中,为了提高效率和资源利用,常采用单例模式来创建全局唯一的Hibernate SessionFactory实例。这使得整个应用只有一个SessionFactory,降低了内存消耗并减少了数据库连接的创建和关闭。 ...

    SSH整合开发完整例子(Struts+spring+hibernate完整开发)

    在SSH整合开发的完整例子中,通常会包含以下部分: - **项目结构**:合理的目录结构,包括src/main/java(源代码)、src/main/resources(配置文件)、WEB-INF(Web应用配置)等。 - **配置文件**:struts.xml...

    使用Hibernate连接MySql的入门小程序

    通过这个简单的例子,你可以了解到如何在实际项目中使用Hibernate来操作MySQL数据库。随着对Hibernate的深入理解,你可以利用它的高级特性,如缓存、级联操作、多表关联等,进一步提高开发效率和代码质量。祝你在...

    hibernate框架学习实例

    **hibernate框架学习...通过实际运行和调试这些例子,初学者可以更好地理解和掌握Hibernate的使用。记住,理论知识结合实践才能真正掌握技术,所以动手操作是非常重要的步骤。祝你在学习Hibernate的过程中取得进步!

    hibernate+ehcache代码示例

    在`HibernateDemo1.zip`中,你可能会看到如何集成Ehcache到Hibernate项目的例子,这包括: 1. 引入Ehcache的依赖库。 2. 配置`hibernate.cfg.xml`以启用二级缓存并指定Ehcache配置文件。 3. 在实体类或映射文件中...

    Hibernate注解编程实例

    ### Hibernate注解编程...这种方式非常适合简单的应用,但对于更复杂的映射需求,则可以通过XML映射文件来进行配置,如下面的例子所示: ```xml <mapping resource="com/xmxz/hibernate/mobile/Operator.hbm.xml"/> ...

    spring深入26个例子

    例子可能包含对bean的scope(单例、原型)、初始化方法、销毁方法的配置和使用。 3. **AOP**:Spring的AOP模块用于实现横切关注点,如日志、事务管理等。例子中可能会演示如何定义切面、通知类型(前置、后置、异常...

    一个模拟Spring将SessionFactory注入到HibernateTemplate的小例子

    它基于Hibernate的配置信息(如hibernate.cfg.xml)初始化,并在整个应用生命周期内保持单例模式。 2. HibernateTemplate:这是Spring提供的一个辅助类,它封装了SessionFactory的一些常用操作,如保存、更新、删除...

    DAOmvc 简单例子

    DAO实现类则负责具体的数据库交互,通常是通过JDBC(Java Database Connectivity)或者ORM(Object-Relational Mapping)框架如Hibernate、MyBatis等实现。 MVC架构是一种分层的软件设计模式,用于构建Web应用程序...

    spring之实战例子

    开发者可以通过定义bean的scope(单例、原型等)、初始化方法、销毁方法等来控制Bean的生命周期。 6. **Spring Boot**:近年来,Spring Boot成为快速开发Spring应用的新选择,它预配置了许多常见设置,简化了项目的...

    侯捷翻译的3本JAVA书的例子代码

    此外,也可能包含异常处理、多线程、集合框架、IO流、网络编程、反射、注解、设计模式(如工厂模式、单例模式、观察者模式等)等广泛的主题。 3. **PracticalJavaCode** 这个目录可能专注于实际应用中的Java代码,...

    S2SH登录例子改进版

    【S2SH登录例子改进版】是一个基于Struts2、Spring和Hibernate这三大主流Java Web框架集成的登录示例的优化版本。这个项目(Prj16)旨在提供一个更安全、高效且易于维护的登录系统模型。在传统的S2SH登录示例中,...

    spring 学习 MyEclipseSample例子

    4. **Bean的生命周期管理**:Spring容器可以管理Bean的生命周期,包括初始化、销毁方法的调用,以及作用域(如单例、原型等)。在实践中,我们可以定义初始化方法、销毁方法,以及通过`@PostConstruct`和`@...

    上课的例子-jdbc分层开发-登录.zip

    【标题】"jdbc分层开发-登录.zip"的示例主要展示...对于更复杂的系统,可能会引入ORM框架(如Hibernate或MyBatis)来简化数据访问层的代码,并结合Spring框架进行依赖注入和事务管理,以提高代码的可测试性和可扩展性。

    Java各种必备面试题目程序代码例子与应战技巧.zip

    7. **设计模式**:了解常见的设计模式(单例、工厂、观察者、装饰器、适配器等),并能结合实际场景应用。 8. **JVM原理**:理解JVM的运行机制,包括类加载、字节码执行、内存模型和性能优化。 9. **框架知识**:...

    实用java简历的例子

    - 求职者熟悉多种设计模式,如工厂模式、单例模式、缺省适配器模式、不变模式、装饰模式、代理模式、MVC和Spring IoC,这些设计模式的掌握证明了其在软件设计上的灵活性和专业性。 4. **数据库技术** - 熟练应用...

    Spring入门

    简单的ppt和例子。1、轻松实现软件各层之间的解耦:利用依赖注入技术,降低组件之间的耦合度。 2、轻松实现如权限拦截、运行期监控等功能:利用Spring提供了AOP技术。 3、 提供单例模式支持,开发人员不再需要自己...

Global site tag (gtag.js) - Google Analytics