随笔分类 - SSH
摘要:刚刚在整合SSH时碰到了这样一个问题:当我用junit测试时不会报任何异常,数据也都能得到public class BuyerTest {@BeforeClasspublic static void begin() throws Exception{}@Testpublic void save(){ Configuration config=new AnnotationConfiguration().configure(); SessionFactory sf=config.buildSessionFactory(); Session session=sf.openSession(); ...
阅读全文
摘要:代理模式:·作用:为其他对象提供一种代理以控制对这个对象的访问。·在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。代理模式的角色:·抽象角色:声明真实对象和代理对象的共同接口。·代理角色:代理对象角色内部含有对真实对象的引用,从而可以操作真实对象,同时代理对象提供与真实对象相同的接口以便在任何时刻都能代替真实对象。同时,代理对象可以在执行真实对象操作时,附加其他的操作,相当于对真实对象进行封装。·真实角色:代理角色所代表的真实对象,是我们最终要引用的对象。例子:卖房子、中介未完,待续。。
阅读全文
摘要:IOC:控制反转、依赖注入 (Inversion of Control)·对象由容器来创建,而不是他们自己·对象本身并不知道他们自己是如何被配置的IOC用到了工厂设计模式、反射技术。IOC:由容器(框架)定制程序间的关系,不必象传统实现中由程序代码直接操控,控制权转到外部容器(框架)·目的:提升组件的重用概率依赖注入的实现—一接口注入:·原理:通过定义某一类型的接口interface来标识一组功能相似的对象,并在这一组对象与其调用者间,在编译时分离,在运行时才动态加载实现类·好处:使得调用者和组件对象间的依赖程度减小,提高了模块的独立性依赖注入
阅读全文
摘要:IOC(Inverse of Control)可翻译为“控制反转”,但大多数人都习惯将它称为“依赖注入”。在Spring中,通过IOC可以将实现类 、参数信息等配置在其对应的配置文件中 ,那么当需要更改实现类或参数信息时,只需要修改配置文件即可 所谓依赖注入就是指:在运行期,由外部容器动态地将依赖对象注入到组件中。当spring容器启动后,spring容器初始化,创建并管理bean对象,以及销毁它。所以我们只需从容器直接获取Bean对象就行,而不用编写一句代码来创建bean对象。 依赖注入即应用本身不负责依赖对象的创建及维护,依赖对象的创建及维护是由外部容器负责的。这样控制权就由应用转移到了.
阅读全文
摘要:1+N问题也可以叫N+1问题,什么是1+N问题呢?如果在一个对象里关联另一个对象,并且fetch = FetchType.EAGER。比如说ManyToOne(OneToMany也存在这种问题)关联,本来只需要取Many里的对象属性,可是Many里关联的对象都会单独再发一条语句取关联对象的属性。本来只用发一条就可以查出Many里的对象属性,可是它发了一条语句后,再发N条语句取关联对象的数据。解决办法:1、设置多的那方的FetchType为LAZY:在合适的时候才发出语句(按需要发语句)。2、BatchSize:在One对象设置Size后,取出Many里的数据后,再发N/Size条语句取关联对象
阅读全文
摘要:1.延迟加载load是true而get是false即:load采用的是延迟加载的方式;而get不是。hibernate思想是:既然这个方法支持延迟加载他就认为这个对象一定在数据库存在,在你声明User u = (User) session.get(User.class, id);这句时候,hibernate就干了一件事--->查询session缓存,如果缓存中没有这个对象,那就创建个代理。(因为延迟加载需要代理来执行所以就创建了个代理。)load访问数据库的时候,load默认为加载的数据数据库一定存在数据库中,返回的是一个代理实体,而不是一个真正的类实例,2.查询顺序load首先查询se
阅读全文
摘要:struts2中theme属性包括xhtml,html,simple,ajax 。默认是xhtmltheme:设置struts2标签的主题,默认为xhtml。theme=xhtml时:会默认额外生成tr,td。theme=simple时:就生成标签所对应的html标签形式。在默认情况下,表单元素是分布在不同行的。如下代码:<s:form action="login2"> <s:textfield label="用户名" name="username"/> <s:password label="密
阅读全文
摘要:Hibernate一共包括了23个jar包,令人眼花缭乱。本文将详细讲解Hibernate每个jar包的作用,便于你在应用中根据自己的需要进行取舍。 下载Hibernate,例如2.0.3稳定版本,解压缩,可以看到一个hibernate2.jar和lib目录下有22个jar包: hibernate2.jar: Hibernate的库,没有什么可说的,必须使用的jar包 cglib-asm.jar: CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必须使用的jar包 dom4j.jar: dom4j是一个Java的XML API,类似于jdom,用来读...
阅读全文
摘要:前面Leno的文章有介绍如何设置主机之间的SSH信任关系,在我平时的工作中经常需要配置Linux服务器之间的SSH信任关系,所以总结了一下在遇到SSH连接不上时候的解决思路,供大家参考。大家如果有什么新的思路也可以一起讨论。问题一: ssh IP_A 或ssh root@IP_A 都显示 Permission denied (publickey,gssapi-with-mic).思路:可以检查一下IP_A上面的SSH版本是否正确,线上服务器如果存在sshd路径是/use/local/bin/sshd的,一定要升级sshd版本,正确的版本是/usr/sbin/sshd问题二: ssh IP_A显
阅读全文
摘要:http://baike.baidu.com/view/1859857.htm单例模式一般有三种形式//1.饿汉式public class Singleton1 { private static Singleton1 instance = new Singleton1(); private Singleton1() { } static Singleton1 getInstance() { return instance; }}************************************************************************************
阅读全文
摘要:设计模式做为程序员的“内功心法”,越来越受到.net社区的重视,这种变化是很可喜的,Java社区走在了我们的前面,但这种状况也许有一天会发生改变。从追MM谈Java的23种设计模式 1、FACTORY—追MM少不了请吃饭了,麦当劳的鸡翅和肯德基的鸡翅都是MM爱吃的东西,虽然口味有所不同,但不管你带MM去麦当劳或肯德基,只管向服务员说“来四个鸡翅”就行了。麦当劳和肯德基就是生产鸡翅的Factory. 工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品,只需向工厂请求即可。消费者无须修改就可以接纳新产品。缺点是当产品修改时,工厂类也要做相应的修改。如:如何创建及如何向客户端提供。...
阅读全文