Hibernate知识集锦
重要概念
get和load
在Hibernate 3.6.x中:
get会返回实际的对象实例,如果不存在则返回null,session.get(Superclass.class,id)与session.get(Concreteclass,id)的返回值完全一致。…
阅读全文
12 years ago
0
使用Java进行网络编程
Java网络编程的特点
- 底层细节被隐藏:传统的网络编程依赖操作系统提供的各种函数,使用起来异常复杂,需要关注网络协议的底层细节。而Java平台对网络编程接口进行一致性封装,内置的线程机制也便于操控并发的网络连接
Java网络编程原生接口
类/接口 | 说明 |
Inet… |
12 years ago
0
Maven依赖速查表
Log4j2 + Slf4j
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
<!-- 使用Log4J2--> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.8.2</version> </dependency> <!-- 让commons logging使用Log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-jcl</artifactId> <version>2.8.2</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.21</version> </dependency> <!-- 让Slf4j使用Log4j2 --> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> <version>2.8.2</version> </dependency> |
Axis1.x客户端
1 2 3 4 5 6 7 8 9 10 |
<dependency> <groupId>axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>axis</groupId> <artifactId>axis-jaxrpc</artifactId> <version>1.4</version> </dependency> |
Velocity
JSR250以及JSR330
Jackson JSON 2.x
CXF依赖(包含jettey传输)
Axis2动态客户端
支持XA的事务管理器atomikos
Quartz任务调度组件
阅读全文
12 years ago
0
Mybatis学习笔记
简介
Mybatis是一个持久化层的Java框架,但是它并不是完整的ORM方案,它是以SQL为中心的,更像JOOQ而不是Hibernate。这意味着,如果使用Mybatis,你在某种程度上需要抛弃OO的领域模型设计(以对象为中心),转而以数据库表为中心进行设…
阅读全文
12 years ago
0
1
Struts2学习笔记
简介
Struts2是一个流行的基于Java的MVC框架,它基于WebWork,因而最初被称为WebWork2。它具有以下特性:
- 基于POJO的表单和Action。Struts1的ActionForm已经被废弃,Action现在也没有任何接口的限定。任何一个J…
12 years ago
0
使用Mockito进行单元测试
Mockito简介
Mockito是一个Java仿冒框架,所谓仿冒,就是创建一个“虚假”的类,来模拟一个类的行为。之所以需要“仿冒”,可能出于下列考虑:
- 某个类已经进入单元测试,而协作类尚未开发完成。此时需要快速模拟出协作类,避免耽误测试进度
- 协作类的实现可能存…
12 years ago
0
Java7新特性
Switch语句支持字符串
1 2 3 4 5 6 7 8 |
switch ( args[0] ){ case "Hello": break; case "World": break; default: break; } |
try()结构
1 2 3 4 |
// try可以附加资源管理的代码,这些资源如果实现AutoCloseable接口,那么会被自动关闭 try (OutputStream out = System.out;InputStream in = System.in){} catch ( IOException e ){} finally{} |
多重捕获
二进制字面值
数字下划线分隔符
泛型类型自动推演
Fork/Join框架
Fork/Join模式是处理并行编程的经典模式,Java 7将其集成到JDK中,Java7 的Fork/Join框架可以很好的利用多核CPU来完成复杂的计算任务。Fork/Join的思想是,把计算任务分为两个阶段:
- 分解阶段:把任务分解为多个不相关的小块,分别有多个线程进…
12 years ago
0
Servlet知识集锦
基础知识
Servlet规范和JSP版本
Servlet | JSTL | JSP | JSF | JavaEE | 备注 |
2.3 | 1.0 | 1.1/1.2 | J2EE1.3 | ||
2.4 | 1.1 | 2.0 | 1.1 | J2EE1.4 | Weblogic9.2只实现了2.4,必须使用JSTL 1.1和对应的Standard… |
13 years ago
0
AspectJ编程学习笔记
AOP基本概念
名词 | 含义 |
切面(方面,Aspect) | 一个关注点的模块化,这个关注点实现可能横切(crosscutting)多个对象切面的例子包括:事务控制、日志记录、权限控制等在AspectJ中,切面表现为Java类,其源码具有AspectJ的特殊语法增强,… |
13 years ago
1
15
Spring与Quartz的任务调度比较
任务调度代码比较
Spring 2.x 任务调度示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
<bean id="demoJob" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> <!-- 目标Bean --> <property name="targetObject"> <bean class="cc.gmem.demo.DemoService" /> </property> <!-- 目标方法 --> <property name="targetMethod" value="doStuff" /> <!-- 防止并发执行 --> <property name="concurrent" value="false" /> </bean> <!-- 简单触发器 --> <bean id="simpleTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerBean"> <property name="jobDetail" ref="demoJob" /> <!-- 启动后,调度开始的时间 --> <property name="startDelay" value="0" /> <!-- 每隔2000ms调度一次 --> <property name="repeatInterval" value="2000" /> </bean> <!-- Cron触发器 --> <bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"> <property name="jobDetail" ref="demoJob" /> <property name="cronExpression" value="15 0/2 * * * ?" /> </bean> <!-- 调度工厂Bean --> <bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> <property name="triggers"> <list> <ref bean="simpleTrigger" /> <ref bean="cronTrigger" /> </list> </property> </bean> |
Spring 3.x 任务调度示例
配置文件方式
1 2 3 4 5 6 7 |
<!-- 任务调度器配置,pool-size为线程池大小,限制了同时最多被调度的任务 --> <task:scheduler pool-size="100" id="scheduler" /> <!-- 任务计划列表,支持固定频率、固定延迟、Cron表达式等 --> <task:scheduled-tasks scheduler="scheduler"> <task:scheduled fixed-rate="120000" method="doStuff" ref="demoService" /> <task:scheduled cron="15 0/2 * * * ?" method="doStuff" ref="demoService" /> </task:scheduled-tasks> |
Quartz任务调度示例
特性比较
比较项 | Spring2.x | Spring3.x | Quartz |
优… |
13 years ago
0