`
gotothework
  • 浏览: 81327 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
最近访客 更多访客>>
社区版块
存档分类
最新评论
文章列表
在利用Hibernate开发DAO模块时,我们和Session打的交道最多,所以如何合理的管理Session,避免Session的频繁创建和销毁,对于提高系统的性能来说是非常重要的,以往是通过eclipse的插件来自动完成这些代码的,当然效果是不错的,但是总是觉得不爽(没有读懂那些冗长的代码),所以现在打算自己实现Session管理的代码。          我们知道Session是由SessionFactory负责创建的,而SessionFactory的实现是线程安全的,多个并发的线程可以同时访问一个SessionFactory并从中获取Session实例,那么Session是否是线程安全的 ...
在各种Session 管理方案中, ThreadLocal 模式得到了大量使用。ThreadLocal 是Java中一种较为特殊的线程绑定机制。通过ThreadLocal存取的数据,总是与当前线程相关,也就是说,JVM 为每个运行的线程,绑定了私有的本地实例存取空间,从而为多线程环境常出现的并发访问问题提供了一种隔离机制。首先,我们需要知道,SessionFactory负责创建Session,SessionFactory是线程 安全的,多个并发线程可以同时访问一个SessionFactory 并从中获取Session 实例。而 Session并非线程安全,也就是说,如果多个线程同时使用一个Ses ...
本篇从java.sql.Driver接口、java.sql.DriveManager类以及其它开源数据库的驱动类讨论JDBC中驱动加载的全过程以及JDBC的Framework如何做到“可插拔”的细节。        本篇包含了很多部分的内容。如类加载器、本地方法、对象锁、类锁、按功能或者状态分离锁、安全机制,对这些内容没有深入讨论!详情可以继续关注本博客!我在上篇主要关注驱动管理器的初始化、连接的建立、驱动的注册、驱动的遍列、驱动的取消注册以及DriverManager中的日志操作。 一、Driver接口//Driver.java package java.sql; public int ...
缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事 ...
1.列举出 10个JAVA语言的优势 a:免费,开源,跨平台(平台独立性),简单易用,功能完善,面向对象,健壮性,多线程,结构中立,企业应用的成熟平台, 无线应用 2.列举出JAVA中10个面向对象编程的术语 a:包,类,接口,对象,属 ...
Spring为我们解决最让人头痛的难题之一,Hibernate的Session的关闭与开启问题。 Hibernate 允许对关联对象、属性进行延迟加载,但是必须保证延迟加载的操作限于同一个 Hibernate Session 范围之内进行。如果 Service 层返回一个启用了延迟加载功能的领域对象给 Web 层,当 Web 层访问到那些需要延迟加载的数据时,由于加载领域对象的 Hibernate Session 已经关闭,这些导致延迟加载数据的访问异常。而Spring为我们提供的OpenSessionInViewFilter过滤器为我们很好的解决了这个问题。OpenSessionInViewF ...
一个不错的关于ApplicationContext的讲解: ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,我想用“容器”来表述它更容易理解一些,ApplicationContext则是“应用的容器”了:P,Spring把Bean放在这个容器中,在需要的时候,用getBean方法取出,虽然我没有看过这一部分的源代码,但我想它应该是一个类似Map的结构。 在Web应用中,我们会用到WebApplicationContext,WebApplicationContext继承自ApplicationContext,先让我们看看在Web应用中,怎么初始化W ...
在Servlet技术中,HttpServlet可谓是一个核心类,在熟练运用的同时,我们还要透彻的分析其底层的工作原理,这样对于我们的实际中的开发,和日后的学习,都有非常大的帮助。HttpServlet是一个继承了GenericServlet的抽象类。主要是应用于Http协议的请求和响应。当容器接收到一个针对HttpServlet对象的请求时,调用该对象的方法顺序如下: 1.公共的service(); 2.在公共的service(ServletRequest req, ServletResponse res)方法中,首先将参数类型转换为HttpServletRequest和HttpServlet ...
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。 1. 配置文件 Log4J配置文件的基本格式如下: #配置根Logger log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  … #配置日志信息输出目的地Appender log4j.appender.appenderName  =  fully.qualified.name.of.appender.c ...
1、session在何时被创建 一个常见的误解是以为session在有客户端访问时就被创建,然而事实是直到某server端程序调用 HttpServletRequest.getSession(true)这样的语句时才被创建,注意如果JSP没有显示的使用 <% @page session="false"%> ...
Java基础方面: 0、作用域public,private,protected,以及不写时的区别 答:区别如下: 作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × 不写时默认为friendly 1。 jav ...
DriverManager 类是 JDBC 的管理层,作用于用户和驱动程序之间。它跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接。另外,DriverManager 类也处理诸如驱动程序登录时间限制及登录和跟踪消息的显示等事务。对于简单的 ...
    大2就开始接触Java,周围也有很多同学也在学习Java,我发现,很多人认为,学习了Java之后,能使用各种IDE工具,使用各种集成框架,这样,他们就算是学会了Java,精通了Java,了解了Java,但是事情恰恰相反,他们忽略了最重要的一个环节,基础!!!! 在我看来,基础比任何都重要,对于现在的各种集成框架,各种新颖的技术,如果我剥开它外面那层华丽的面纱,我们不难发现,不管它是功能多么齐全的框架,不管它是多么先进的技术,它的底层实现,其实就是无数行的Java基础代码,开发者完美的封装了这些代码,使它变成另一种状态。正所谓万物不离其根本,精通了基础,才是学好java的第一步。我周围有的 ...
    一转眼大四将近,想一想大学走过来这3年里,感觉比在高中的时候充实了很多,学到了很多东西。可以说学习Java是我人生的一大转折,我从来没有想到,我会对Java有这么大的热情,对于我来说,学习Java是一件非常让人兴奋的事情。起初是为了父母,想要好好学习,选择了Java做我的出路,在学习的过程中感觉Java带给我的不仅是知识上的满足,它让我感觉到了人生的充实,奋斗的喜悦。我要非常的感谢我的母亲,如果没有她的鼓励和支持,我想我走不到今天,如果没有她,现在我可能是在上网打游戏,而不是在这写我的博客。将来的路很长,当初是为了能让父母过上好日子,我选择了学习Java,现在,我又有了目标,不仅要让父母 ...
每个运行中的线程都有一个成员contextClassLoader,用来在运行时动态地载入其它类 系统默认的contextClassLoader是systemClassLoader,所以一般而言java程序在执行时可以使用JVM自带的类、$JAVA_HOME/jre/lib/ext/中的类和$CLASSPATH/中的类 可以使用Thread.currentThread().setContextClassLoader(...);更改当前线程的contextClassLoader,来改变其载入类的行为 ClassLoader被组织成树形,一般的工作原理是: 1) 线程需要用到某个类,于是contex ...
Global site tag (gtag.js) - Google Analytics