编程语言---Java
辛星
生命不息,奋斗不止。
展开
-
辛星浅析hibernate中的configuration、sessionfactory和session
首先说Configuration,它负责管理Hibernate的配置信息,这些配置信息通常从xml文件中读取,当然默认是从classpath中的hibernate.cfg.xml来读取,当然我们也可以自定义文件名,通畅我们在实例化的时候指定具体的路径就可以了。 Configuration的实例会根据当前的配置信息构造SessionFactory的实例,其中SessionFactory原创 2016-01-18 01:44:42 · 570 阅读 · 0 评论 -
浅析tomcat中的work目录
用tomcat作web服务器的时候,部署的程序在webapps下。这些程序都是编译后的程序(发布到tomcat的项目里含的类,会被编译成.class,但这里的jsp没有经编译的)。tomcat有一个work目录,里面存放了页面的缓存。访问的jsp都会编译,那些jsp页面会被编译成应该是servlet文件。下次再来 访问时,就直接运行servlet类就可以向客户端反应响应页面了。原创 2016-06-23 15:05:17 · 748 阅读 · 0 评论 -
Java中没有抽象方法的抽象类
好久没写过博客了,最近一段时间确实是太忙了,忙于各种琐碎的事情。然后突然想写点东西,都不知道要写什么了,于是就随便写一点吧。抽象类中可以没有抽象方法,但有抽象方法的一定是抽象类,比如常见的有HttpServlet类。但是抽象类是不能被实例化的,即使它没有抽象方法。没有抽象方法的抽象类的价值在于:实例化了没有意义,因为类已经把方法都实现了,而且它不需要通过不同的对象来保存原创 2017-07-17 17:53:55 · 6708 阅读 · 5 评论 -
scala中的"unbound placeholder parameter"中的一种情况
在scala中,如果我们使用val型的变量使用下划线赋值的话,就会出现这种提示,如果是使用var型的变量,就不会有这种提示了。操作范例如下:scala> val a: Int = _:11: error: unbound placeholder parameter val a: Int = _ ^scala> var a: Int原创 2017-08-16 14:51:42 · 3186 阅读 · 1 评论 -
java中泛型的一般表示方式
T表示任意的类型E表示集合的元素类型K和V表示映射的键和值类型X表示异常如果泛型较多,通常可以是T、U、V或者是T1、T2、T3这样原创 2017-08-04 14:37:06 · 692 阅读 · 1 评论 -
spring中"Closing non transactional SqlSession"的处理
在我们没有开启事务的时候,如果使用mybatis,我们会在日志中看到如下的内容:"Closing non transactional SqlSession",这种情况说明没有开启Spring的事务管理,因此才会关闭一个非事务的SqlSession。 那么如何开启事务管理呢?最简单的方式就是添加下面两条配置: <bean id="transactionManager"原创 2017-08-22 10:46:37 · 131025 阅读 · 8 评论 -
IDEA中常用的快捷键
连按两次shift可以快速开启搜索模式Option + Command + L可以快速格式化代码Ctrl + Option + O 可以优化导入的包Command + N可以快捷生成代码、也可以快速生成类、接口等Option + Command + T 可以使用代码模板,比如被try、catch包围、比如被if、else包围等等command + Shift + U 可以实现大原创 2017-08-30 21:43:21 · 550 阅读 · 0 评论 -
在github的Spring3.2源码分析的项目,欢迎star和watch
好久不来csdn,感觉界面确实比之前好多了,清爽了很多,也显得更加大气了,点个赞,而且自动保存草稿的功能也设置的非常好,我突然感觉之后可能上CSDN的频率又要勤好多。之前有段时间csdn真的是太卡了,导致对csdn也有很长一段时间的冷落。 对于热衷于Java的程序员来说,Spring应该都是听过的一个框架,但是读过Spring源码的Java应该有不少,但是读Spring源码很细致的估计原创 2018-01-13 23:33:08 · 780 阅读 · 0 评论 -
辛星简析jmx第一篇:标准管理构件
jmx即java management extensions,即"java管理扩展",它是一个为应用程序植入管理功能的框架。这里我们首先来介绍几个核心概念:1.设备层(instrumentation level)设备层定义了信息模型,也就是jmx中的各种管理对象。需要管理的时候,信息模型需要向MBean服务器进行注册。jmx中的各种管理对象,即jmx的管理构件,即managed bean,即mbe...原创 2018-02-16 20:37:01 · 285 阅读 · 1 评论 -
很赞的struts.xml配置
struts.xml是我们在开发中利用率最高的文件,也是Struts2中最重要的配置文件。一下分别介绍一下几个struts.xml中常用到的标签1、利用include标签,可以将一个struts.xml配置文件分割成多个配置文件,然后在struts.xml中使用标签引入其他配置文件。比如一个网上购物程序,可以把用户配置、商品配置、订单配置分别放在3个配置文件user.x原创 2016-06-16 11:17:27 · 415 阅读 · 0 评论 -
很赞的web.xml配置解释
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> XinXing This is an application of xinxing DemoFilter xinxing.D原创 2016-06-16 10:57:59 · 422 阅读 · 0 评论 -
struts中的invocation
将Web页面中的输入元素封装为一个(请求)数据对象,这个对象就是ActionInvocation类型。对于Xwork 而言,前端的Webwork 组件为其提供的是一个Map 类型的数据结构。而Action面向的却是Model对象所提供的数据结构。写一个辅助类完成对这两种数据结构的转换工作,并在每次Action调用之前由框架代码调用它完成转换工作。Xwork通过Interceptor原创 2016-06-16 10:20:58 · 524 阅读 · 0 评论 -
辛星浅析Hibernate中的缓存机制
问:为什么需要缓存机制呢? 答:①Hibernate作为一个持久层框架,需要经常访问物理数据库。 ②为了提高程序性能,通常应该降低应用程序对物理数据源访问的次数。 问:Hibernate如何实现缓存? 答:①Hibernate中的缓存包括两大类:一级缓存和二级缓存。 ②一级缓存又称为S原创 2016-01-18 02:16:29 · 412 阅读 · 0 评论 -
辛星简单比较下Hibernate中的一级缓存和二级缓存
1.按照存放数据的形式:一级缓存是相互关联的持久化对象,而二级缓存则是数据的散装对象。 2.按照缓存的范围:一级缓存通常是事务范围,每个事务都有单独的一级缓存,而二级缓存则是进程范围或者是集群范围,缓存被同一个进程或者集群范围中的所有事务共享 3.按照并发访问策略,一级缓存由于每个事务都拥有单独的一级缓存,因此不会出现并发问题,因此无须提供并发访问策略。二级缓存原创 2016-01-18 02:31:29 · 456 阅读 · 0 评论 -
辛星浅析Hibernate中一级缓存的使用
当我们使用session对象调用save()方法保存一个对象的时候,该对象就会被放入到session的缓存中。 当我们使用session对象调用get()或者load()方法从数据库获取一个对象的时候,该对象也会被放入到session的缓存中。 clear()则是将一级缓存中的所有持久化对象清除,释放其占用的内存资源。 flush()刷新一级缓存区的内容,原创 2016-01-18 02:41:03 · 379 阅读 · 0 评论 -
辛星浅析hibernate中数据库模式的几种配置项
在主配置文件hibernate.cfg.xml中,有配置项:create这里有四个配置值: create , update , create-drop, validatecreate: 当我们的应用程序加载配置项时,就会根据映射文件,在数据库中创建对应的表,如果有,则会覆盖原表update: 如果数据库中没有该表,则创建,如果有表,则看有没有变化,如果有变化,则更新原创 2016-01-19 21:48:46 · 417 阅读 · 0 评论 -
浅析META-INF
所谓META-INF, 说白了就是存放一些meta information相关的文件的这么一个文件夹。一般来说尽量不要自己手工放置文件到这个文件夹。就是说这个文件夹应该被看作是JAVA工程的一个内部META目录。所以这个目录下的文件应该都是build工具来生成的。我们自己的文件应该直接放到根目录下或者其他的子目录中。一个典型的META-INF目录下可能包含如下几种文件或原创 2016-06-24 00:04:24 · 1402 阅读 · 1 评论 -
java中多线程常见的几个参数
sleep:在指定的毫秒数内让当前正在执行的线程休眠(暂停执行).此操作受到系统计时器和调度程序精度和准确性的影响。该线程不丢失任何监视器的所属权。 调用sleep的时候锁并没有被释放。休眠 Java SE5引入了更加显示的sleep()作为TimeUnit类的一部分,这个方法允许你指定sleep()延迟的时间单元,因此可以提供更好的可阅读性。wait:调用wait使线原创 2016-06-15 17:34:35 · 1415 阅读 · 0 评论 -
浅析Java中的Thread
一、使用方式。join是Thread类的一个方法,启动线程后直接调用,例如:Thread t = new AThread(); t.start(); t.join();二、为什么要用join()方法在很多情况下,主线程生成并起动了子线程,如果子线程里要进行大量的耗时的运算,主线程往往将于子线程之前结束,但是如果主线程处理完其他的事务后,需要用到子线程的处理结果,也就是主线程需要等待原创 2016-06-15 18:28:39 · 548 阅读 · 0 评论 -
浅析Java中的阻塞
所谓的阻塞,就是线程能够运行,但是某个条件阻止它的运行,当线程处于阻塞状态时,调度器将忽略线程,不会分配给线程任何CPU时间,直到线程重新进入就绪状态,它才有可能执行操作。所谓的就绪,就是可运行也可不运行,只要调度器分配时间片给线程,线程就可以运行,因为我们都知道,调度器是如何分配线程,是不确定的。为什么任务会进入阻塞的状态,一般有以下几个原因:1.通过调用sleep(mill原创 2016-06-15 18:41:43 · 667 阅读 · 0 评论 -
辛星解析rmi第一篇:光速入门
rmi也可以说是一个比较古老的技术了,但是还是在很多地方有不少作用的,因此这里介绍一下。在网上搜索了一些资料之后,发现陈旧的东西太多了,好多都是过时的操作,因此决定自己写一篇更加现代的文章。rmi即Remote Method Invoke,它在一开始是比较啰嗦的,但是现在已经变得比较简单了。它的基本思路是这样的:第一步,首先在一个特定的地址进行注册,比如地址:,它使用的是rmi协议。第二步,客户端...原创 2018-02-19 06:45:53 · 327 阅读 · 2 评论