一个计算机技术爱好者与学习者

0%

创建数据库和表

其实我们在之前的例子中已经创建过了,数据库名xscj,表为dlb。详情请见《Hibernate与Struts2整合应用》。

创建项目

创建Dynamic Web Project,命名为hibernate_spring。

加载Spring框架

右击项目名,Properties,Java Build Path,Libraries,Add Library…,User Library,Next,User Libraries…,New…,输入“spring”,OK,Add External JARs…,选中需要的jar文件,打开,OK。

加载Hibernate框架

右击项目名,Properties,Java Build Path,Libraries,Add Library…,User Library,Next,User Libraries…,New…,输入“hibernate”,OK,Add External JARs…,选中需要的jar文件,打开,OK。

阅读全文 »

新建项目

新建Dynamic Web Project,命名为struts2_spring。

添加struts2框架

添加struts2五个核心jar包到lib文件夹。

web.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>

<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

</web-app>

阅读全文 »

概述

Spring的事务管理不需要与任何特定的事务API耦合。Spring同时支持编程式事务策略和声明式事务策略,大部分时候都采用声明式事务策略。声明式事务管理的优势非常明显:代码中无需关注事务逻辑,让Spring声明式事务管理负责事务逻辑,声明式事务管理无需与具体的事务逻辑耦合,可以方便地在不同事务逻辑之间切换。

声明式事务逻辑的配置方式,通常有以下4中:
1、使用TransactionProxyFactoryBean为目标Bean生成事务代理的配置。此方式是最传统、配置文件最臃肿、最难以阅读的方式。
2、采用Bean继承的事务代理配置方式,比较简洁,但仍然是增量式配置。
3、采用BeanNameAutoProxyCreator,根据Bean Name自动生成事务代理的方式。这是直接利用Spring的AOP框架配置事务代理的方式,需要对Spring的AOP框架有所理解。但这种方式避免了增量式方式,效果非常不错。
4、采用DefaultAdvisorAutoProxyCreator,直接利用Spring的AOP框架配置事务代理的方式,效果非常不错,只是这种配置方式的可读性不如第3种方式。

阅读全文 »

从代理机制初探AOP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package com.voidking.aop;

import java.util.logging.*;

public class HelloSpeaker {
private Logger logger = Logger.getLogger(this.getClass().getName());
public void hello(String name)
{
logger.log(Level.INFO, "hello method starts...");
System.out.println("hello,"+name);
logger.log(Level.INFO, "hello method ends...");
}
}

在HelloSpeaker类中,当执行hello()方法时,程序员希望该方法执行开始与执行完毕时都留下日志。最简单的做法是上面的程序设计,在方法执行前后加上日志动作。

然而对于HelloSpeaker类来说,日志的这种动作并不属于HelloSpeaker的逻辑,这使得HelloSpeaker增加了额外的职责。

阅读全文 »

名词解释

简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

Spring框架是Rod Johnson开发的,2003年发布了Spring框架的第一个版本。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,从而大大提高了企业应用的开发效率。

Spring为企业应用的开发提供了一个轻量级的解决方案。其中依赖注入、基于AOP的声明式事务管理、多种持久层的整合与优秀的Web MVC框架等最为人们关注。Spring可以贯穿程序的各层之间,但它并不是要取代那些已有的框架,而是以高度的开发性与它们紧密地整合,这也是Spring被广泛应用的原因之一。

Spring使用最基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合性的角度而言,任何Java应用都可以从Spring中受益。

官网

http://spring.io

阅读全文 »