
相关推荐


比特币挖矿平台有哪些?比特币挖矿平台排行榜前十名汇总

趣店逾期一次就永远用不了了吗-

使用注解的方式,配置文件最少可以精简到三个,web.xml、applicationContext.xml和struts.xml。Hibernate可以完全交给Spring来管理,这样连hibernate.cfg.xml也省了。下面就一起看看这些基本的配置吧!
web.xml
[html] view plaincopy
xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="SSH" version="2.5">
web.xml中包含了Spring和struts的基本配置,自动扫描Action的配置就是告诉tomcat,我要使用注解来配置struts。
applicationContext.xml
[html] view plaincopy
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"> org.hibernate.dialect.MySQLDialect
applicationContext.xml里配置了数据库连接的基本信息(对hibernate的管理),还有对所有bean的自动装配管理和事务的管理。
struts.xml
[html] view plaincopy
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
struts.xml里配置了一些struts的基本参数,并告诉容器用Spring来管理自己。
到这里一个基本的SSH的配置就算完成了,配置很简单,而且每一项配置都有说明,相信理解上不会有什么问题。基础的配置就这么多,下面就是我们的注解发挥作用的时候了。
userAdd.jsp
[html] view plaincopy
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
用户添加页面,将用户信息提交给UserAction。
UserAction
[java] view plaincopy
package com.tgb.ssh.action;
import javax.annotation.Resource;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.convention.annotation.Results;
import com.opensymphony.xwork2.ActionSupport;
import com.tgb.ssh.model.User;
import com.tgb.ssh.service.UserManager;
@Results( { @Result(name="success",location="/success.jsp"),
@Result(name="failure",location="/failure.jsp") })
public class UserAction extends ActionSupport {
@Resource
private UserManager userManager;
private User user;
@Action(value="addUser")
public String addUser() {
try {
userManager.addUser(user);
} catch (Exception e) {
e.printStackTrace();
return "failure";
}
return "success";
}
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
}
UserAction通过注解配置Action的名字和返回的页面,通过@Resource活动Spring注入的UserManager对象,然后进行相应的操作。Action里还有@Namespace、@InterceptorRef等很多注解可以用,根据自己需要选择吧。
UserManager
[java] view plaincopy
package com.tgb.ssh.service;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.tgb.ssh.dao.UserDao;
import com.tgb.ssh.model.User;
@Service
@Transactional
public class UserManager {
@Resource
UserDao userDao;
public void addUser(User user) {
userDao.addUser(user);
}
}
UserManager通过@Service自动装配到Spring的容器,为其他组件提供服务;通过@Transactional进行事务的管理;通过@Resource注入UserDao对象。
UserDao
[java] view plaincopy
package com.tgb.ssh.dao;
import javax.annotation.Resource;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.springframework.orm.hibernate4.HibernateTemplate;
import org.springframework.stereotype.Repository;
import com.tgb.ssh.model.User;
@Repository
public class UserDao {
@Resource(name="sessionFactory")
private SessionFactory sessionFactory;
public void addUser(User user ) {
Session session = sessionFactory.getCurrentSession();
session.save(user);
}
}
UserDao通过@Repository自动装配到Spring的容器,通过@Resource获得Sessionfactory,将User对象持久化。
User
[java] view plaincopy
package com.tgb.ssh.model;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity(name="t_user")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String name;
private String 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;
}
}
User通过@Entity将实体类映射到数据库,生成t_user表,通过@Id定义表的Id,通过@GenerateValue定义Id的生成策略。