eclipse下用J2EE(hibernate,struts2,spring)实现的简单登录、注册系统
2013-07-04 11:01
666 查看
最近加入了大四学长们的开源项目,本想在里面凑个人数,仅仅体验下开发的流程,没想到学长们竟然安排了精心的培训,向我们细致的介绍了J2EE的实现框架,着重强调了SPRING,HIBERNATE,STRUTS三者的分工,与合作,so,不用心也难啊~~~他们说的时候都明白,但真正到了自己做又是另一码事,在断断续续近两周的时间,我终于自己成功配置出一套登录注册系统,平台是在ECLIPSE下,虽然非常简单,但适合初学者学习!
把WEB-INF/web.xml文件稍微修改下
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>
在mysql里面有一个lyoproject的库,里面有张register的表,分别有字段id(int),name(varchar),password(varchar),然后开始在SRC下配置domain层
package domain;
public class Person {
private int id;
private String name;
private String password;
public Person()
{
}
public Person(String name , String password)
{
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}接着将Person.java映射入数据库,在与其同一级的包里建立一个Person.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="domain.Person" table="register" catalog="lyoproject">
<id name="id" >
<column name="id" length="2"></column>
<generator class="identity"/>
</id>
<property name="name" >
<column name="name"></column>
</property>
<property name="password" >
<column name="password"></column>
</property>
</class>
</hibernate-mapping>此时配置hibernate.cfg.xml文件,放在SRC的目录下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="sessionFactory">
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/lyoproject</property>
<property name="connection.username">root</property>
<property name="connection.password"> 填自己密码</property>
<property name="hibernate.default_catalog">lyoproject</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF8</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">false</property>
<!-- 最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 最小连接数 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="hibernate.c3p0.max_statements">100</property>
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒 -->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
<mapping resource="domain/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>建一个包,配置domine上面的dao层,新建一个PersonDao.java
package dao;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import domain.Person;
public class PersonDao e
4000
xtends HibernateDaoSupport{
public Person get(Integer id){
return getHibernateTemplate().get(Person.class, id);
}
public Integer save(Person person){
return (Integer)getHibernateTemplate().save(person);
}
public void delete(Person person){
getHibernateTemplate().delete(person);
}
public boolean auth(String username,String password){
String hql = "from Person p where p.name=? and password=?";
List<Person> personList = getHibernateTemplate().find(hql,username,password);
if(personList.size()==1){
return true;
}
return false;
}
}接着配置他的service层,我在这边做了一个接口,便于管理,建立Lyoservice.java文件
package service;
import domain.Person;
public interface Lyoservice {
boolean register(Person person);
boolean login(String usename,String password);
}她的实现部分命名为LyoserviceImpl.java
package service.impl;
import domain.Person;
import dao.PersonDao;
import service.Lyoservice;
public class LyoserviceImpl implements Lyoservice
{
private PersonDao persondao;
public void setPersondao(PersonDao persondao) {
this.persondao = persondao;
}
public boolean register(Person person){
int result = persondao.save(person);
if(result>0)
return true;
else
return false;
}
public boolean login(String username,String password){
boolean result = persondao.auth(username,password);
if(result)
return true;
else
return false;
}
}暂时把Action放一下,我们先来配置前台的JSP文件,分别为login.jsp与regist.jsp,我放在了WEB-ROOT下,登录或注册成功的四个JSP文件自行创立
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path =request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>用户登录系统</h3>
<form action="<%=basePath%>input/login">
<s:textfield name="person.name" label="用户名"/>
<s:textfield name="person.password" label="密 码"/>
<s:submit value="登录" theme="simple"/>
<s:reset value="重填" theme="simple"/>
<a href="regist.jsp">注册新用户</a>
</form>
</body>
</html>注册的页面:
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path =request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>注册</title>
</head>
<body>
<h3>用户注册系统</h3>
<form action="<%=basePath%>input/register">
<s:textfield name="person.name" label="用户名"/>
<s:textfield name="person.password" label="密 码"/>
<s:submit value="注册" theme="simple"/>
<s:reset value="重填" theme="simple"/>
</form>
</body>
</html>配置struts.xml文件,放在SRC目录下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts" extends="struts-default" namespace="/input">
<action name="register" class="registerAction">
<result name="success" >/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="login" class="loginAction">
<result name="success" >/loginY.jsp</result>
<result name="error">/loginN.jsp</result>
</action>
<action name="input">
<result>/login.jsp</result>
</action>
</package>
</struts>此时可以编写Action文件了,新建一个包并创建LoginAction.java文件
package action;
import com.opensymphony.xwork2.Action;
import service.Lyoservice;
import domain.Person;
public class LoginAction {
private Person person;
private Lyoservice lyoservice;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public void setLyoservice(Lyoservice lyoservice) {
this.lyoservice = lyoservice;
}
public String execute() throws Exception
{
if (lyoservice.login(person.getName(),person.getPassword()))
{
return "success";
}
else
{
return "error";
}
}
}RegisterAction.java文件:
package action;
import com.opensymphony.xwork2.Action;
import domain.Person;
import service.Lyoservice;
public class RegisterAction implements Action{
private Person person;
private Lyoservice lyoservice;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public void setLyoservice(Lyoservice lyoservice) {
this.lyoservice = lyoservice;
}
public String execute() throws Exception
{
//调用业务逻辑组件的regist方法来处理请求
if (lyoservice.register(person))
{
return "success";
}
else
{
return "error";
}
}
}现在我们需要最后配置下spring的配置文件,文件名为applicationContext.xml,必须放在与WEB.XML文件同级的地方
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Spring配置文件的Schema信息 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocations">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 定义DAO Bean-->
<bean id="persondao" class="dao.PersonDao">
<!-- 注入持久化操作所需的SessionFactory -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置一个业务逻辑组件 -->
<bean id="lyoservice" class="service.impl.LyoserviceImpl">
<!-- 注入持久化访问所需的DAO组件 -->
<property name="persondao" ref="persondao"/>
</bean>
<bean id="registerAction" class="action.RegisterAction">
<property name="lyoservice" ref="lyoservice"/>
</bean>
<bean id="loginAction" class="action.LoginAction">
<property name="lyoservice" ref="lyoservice"/>
</bean>
<!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
<!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务增强处理,指定事务管理器 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 用于配置详细的事务语义 -->
<tx:attributes>
<!-- 所有以'get'开头的方法是read-only的 -->
<tx:method name="get*" read-only="true"/>
<!-- 其他方法使用默认的事务设置 -->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 配置一个切入点 -->
<aop:pointcut id="lyoPointcut"
expression="bean(lyoservice)"/>
<!-- 指定在leePointcut切入点应用txAdvice事务增强处理 -->
<aop:advisor advice-ref="txAdvice"
pointcut-ref="lyoPointcut"/>
</aop:config>
</beans>此处我们的所有文件就配置齐全了!Hava
a try,Good luck!
把WEB-INF/web.xml文件稍微修改下
<?xml version="1.0" encoding="GBK"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener
</listener-class>
</listener>
<filter>
<filter-name>struts2</filter-name>
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
</web-app>
在mysql里面有一个lyoproject的库,里面有张register的表,分别有字段id(int),name(varchar),password(varchar),然后开始在SRC下配置domain层
package domain;
public class Person {
private int id;
private String name;
private String password;
public Person()
{
}
public Person(String name , String password)
{
this.name = name;
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}接着将Person.java映射入数据库,在与其同一级的包里建立一个Person.hbm.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="domain.Person" table="register" catalog="lyoproject">
<id name="id" >
<column name="id" length="2"></column>
<generator class="identity"/>
</id>
<property name="name" >
<column name="name"></column>
</property>
<property name="password" >
<column name="password"></column>
</property>
</class>
</hibernate-mapping>此时配置hibernate.cfg.xml文件,放在SRC的目录下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory name="sessionFactory">
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/lyoproject</property>
<property name="connection.username">root</property>
<property name="connection.password"> 填自己密码</property>
<property name="hibernate.default_catalog">lyoproject</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.useUnicode">true</property>
<property name="connection.characterEncoding">UTF8</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<property name="hibernate.format_sql">false</property>
<!-- 最大连接数 -->
<property name="hibernate.c3p0.max_size">20</property>
<!-- 最小连接数 -->
<property name="hibernate.c3p0.min_size">5</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
<property name="hibernate.c3p0.timeout">120</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="hibernate.c3p0.max_statements">100</property>
<!-- 每隔120秒检查连接池里的空闲连接 ,单位是秒 -->
<property name="hibernate.c3p0.idle_test_period">120</property>
<!-- 当连接池里面的连接用完的时候,C3P0一下获取的新的连接数 -->
<property name="hibernate.c3p0.acquire_increment">2</property>
<!-- 每次都验证连接是否可用 -->
<property name="hibernate.c3p0.validate">true</property>
<mapping resource="domain/Person.hbm.xml" />
</session-factory>
</hibernate-configuration>建一个包,配置domine上面的dao层,新建一个PersonDao.java
package dao;
import java.util.List;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import domain.Person;
public class PersonDao e
4000
xtends HibernateDaoSupport{
public Person get(Integer id){
return getHibernateTemplate().get(Person.class, id);
}
public Integer save(Person person){
return (Integer)getHibernateTemplate().save(person);
}
public void delete(Person person){
getHibernateTemplate().delete(person);
}
public boolean auth(String username,String password){
String hql = "from Person p where p.name=? and password=?";
List<Person> personList = getHibernateTemplate().find(hql,username,password);
if(personList.size()==1){
return true;
}
return false;
}
}接着配置他的service层,我在这边做了一个接口,便于管理,建立Lyoservice.java文件
package service;
import domain.Person;
public interface Lyoservice {
boolean register(Person person);
boolean login(String usename,String password);
}她的实现部分命名为LyoserviceImpl.java
package service.impl;
import domain.Person;
import dao.PersonDao;
import service.Lyoservice;
public class LyoserviceImpl implements Lyoservice
{
private PersonDao persondao;
public void setPersondao(PersonDao persondao) {
this.persondao = persondao;
}
public boolean register(Person person){
int result = persondao.save(person);
if(result>0)
return true;
else
return false;
}
public boolean login(String username,String password){
boolean result = persondao.auth(username,password);
if(result)
return true;
else
return false;
}
}暂时把Action放一下,我们先来配置前台的JSP文件,分别为login.jsp与regist.jsp,我放在了WEB-ROOT下,登录或注册成功的四个JSP文件自行创立
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path =request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<h3>用户登录系统</h3>
<form action="<%=basePath%>input/login">
<s:textfield name="person.name" label="用户名"/>
<s:textfield name="person.password" label="密 码"/>
<s:submit value="登录" theme="simple"/>
<s:reset value="重填" theme="simple"/>
<a href="regist.jsp">注册新用户</a>
</form>
</body>
</html>注册的页面:
<%@ page contentType="text/html; charset=GBK" language="java" errorPage="" %>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
String path =request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>注册</title>
</head>
<body>
<h3>用户注册系统</h3>
<form action="<%=basePath%>input/register">
<s:textfield name="person.name" label="用户名"/>
<s:textfield name="person.password" label="密 码"/>
<s:submit value="注册" theme="simple"/>
<s:reset value="重填" theme="simple"/>
</form>
</body>
</html>配置struts.xml文件,放在SRC目录下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<include file="struts-default.xml"></include>
<package name="struts" extends="struts-default" namespace="/input">
<action name="register" class="registerAction">
<result name="success" >/welcome.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="login" class="loginAction">
<result name="success" >/loginY.jsp</result>
<result name="error">/loginN.jsp</result>
</action>
<action name="input">
<result>/login.jsp</result>
</action>
</package>
</struts>此时可以编写Action文件了,新建一个包并创建LoginAction.java文件
package action;
import com.opensymphony.xwork2.Action;
import service.Lyoservice;
import domain.Person;
public class LoginAction {
private Person person;
private Lyoservice lyoservice;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public void setLyoservice(Lyoservice lyoservice) {
this.lyoservice = lyoservice;
}
public String execute() throws Exception
{
if (lyoservice.login(person.getName(),person.getPassword()))
{
return "success";
}
else
{
return "error";
}
}
}RegisterAction.java文件:
package action;
import com.opensymphony.xwork2.Action;
import domain.Person;
import service.Lyoservice;
public class RegisterAction implements Action{
private Person person;
private Lyoservice lyoservice;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public void setLyoservice(Lyoservice lyoservice) {
this.lyoservice = lyoservice;
}
public String execute() throws Exception
{
//调用业务逻辑组件的regist方法来处理请求
if (lyoservice.register(person))
{
return "success";
}
else
{
return "error";
}
}
}现在我们需要最后配置下spring的配置文件,文件名为applicationContext.xml,必须放在与WEB.XML文件同级的地方
<?xml version="1.0" encoding="GBK"?>
<!-- 指定Spring配置文件的Schema信息 -->
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"> <!-- 定义数据源Bean,使用C3P0数据源实现 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocations">
<value>classpath:hibernate.cfg.xml</value>
</property>
</bean>
<!-- 定义DAO Bean-->
<bean id="persondao" class="dao.PersonDao">
<!-- 注入持久化操作所需的SessionFactory -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置一个业务逻辑组件 -->
<bean id="lyoservice" class="service.impl.LyoserviceImpl">
<!-- 注入持久化访问所需的DAO组件 -->
<property name="persondao" ref="persondao"/>
</bean>
<bean id="registerAction" class="action.RegisterAction">
<property name="lyoservice" ref="lyoservice"/>
</bean>
<bean id="loginAction" class="action.LoginAction">
<property name="lyoservice" ref="lyoservice"/>
</bean>
<!-- 配置Hibernate的局部事务管理器,使用HibernateTransactionManager类 -->
<!-- 该类实现PlatformTransactionManager接口,是针对Hibernate的特定实现-->
<bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<!-- 配置HibernateTransactionManager时需要依注入SessionFactory的引用 -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务增强处理,指定事务管理器 -->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<!-- 用于配置详细的事务语义 -->
<tx:attributes>
<!-- 所有以'get'开头的方法是read-only的 -->
<tx:method name="get*" read-only="true"/>
<!-- 其他方法使用默认的事务设置 -->
<tx:method name="*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 配置一个切入点 -->
<aop:pointcut id="lyoPointcut"
expression="bean(lyoservice)"/>
<!-- 指定在leePointcut切入点应用txAdvice事务增强处理 -->
<aop:advisor advice-ref="txAdvice"
pointcut-ref="lyoPointcut"/>
</aop:config>
</beans>此处我们的所有文件就配置齐全了!Hava
a try,Good luck!
相关文章推荐
- Hibernate+Struts2实现简单登录注册
- Spring+Struts+Hibernate(一个实现用户注册的简单示例)
- Struts2 + Spring + Hibernate简单的Login实现
- 用SPRING+STRUTS+HIBERNATE实现注册与登录
- SpringMVC+mybaits+mysql实现简单的登录注册
- Struts2和hibernate框架整合实现简单的注册登陆功能
- Struts2和Hibernate实现的注册登录模块
- 【J2EE核心开发学习笔记 010】struts2的搭建及连接数据库实现用户注册与登录
- Python之实现简单的注册登录系统
- springmvc05-Spring+Springmvc+Hibernate实现简单的用户管理系统
- struts-2.3.14.3 + hibernate-4.2.2.Final + spring-3.2.4 整合实现简单注册功能始末
- ExtJs、Struts2、Hibernate3.2登录页面的简单实现
- 使用manven+hibernate+spring+shiro登录验证实现简单增删改查
- 吴昊品工程级别软件项目 Round 5 —— 用JavaScript实现一个简单的注册登录系统
- ExtJs、Struts2、Hibernate3.2登录页面的简单实现
- 基于struts2和hibernate实现登录和注册功能
- python实现的简单用户注册登录系统
- Spring+Spring MVC+Spring JDBC+MySql实现简单登录注册
- 一步步搭建Spring+Spring MVC+Hibernate系统框架+登录与注册功能
- 用Hibernate与Struts实现简单的项目的登录与注册