Struts2.3+Spring3.2.8+Hibernate4.1全注解配置

来源:互联网 发布:轮滑培训班软件 编辑:程序博客网 时间:2024/05/21 19:38

转载自:http://lavasoft.blog.51cto.com/62575/1401630/

SSH2全注解

jdbc.properties

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/sshfw?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=roundjdbc.username=rootjdbc.password=leizm

log4j.properties

log4j.rootLogger=debug, stdoutlog4j.logger.java.sql.Connection=info, stdoutlog4j.logger.java.sql.Statement=debug, stdoutlog4j.logger.java.sql.PreparedStatement=debug, stdoutlog4j.logger.org.hibernate=errorlog4j.logger.org.hibernate.SQL=debuglog4j.logger.org.hibernate.tool.hbm2ddl=debuglog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%p %d{yyyy-MM-dd HH:mm:ss} %c:%L - %m%nlog4j.category.org.springframework = ON

application.xml (Spring)

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xmlns:tx="http://www.springframework.org/schema/tx"       xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:context="http://www.springframework.org/schema/context"       xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans.xsd            http://www.springframework.org/schema/tx            http://www.springframework.org/schema/tx/spring-tx.xsd            http://www.springframework.org/schema/aop            http://www.springframework.org/schema/aop/spring-aop.xsd            http://www.springframework.org/schema/context            http://www.springframework.org/schema/context/spring-context.xsd"       default-autowire="byName">    <context:property-placeholder location="classpath*:jdbc.properties"/>    <context:component-scan base-package="com.lavasoft.demo.dao" />    <context:component-scan base-package="com.lavasoft.demo.service"/>    <context:component-scan base-package="com.lavasoft.demo.web.action"/>    <!-- 配置系统的数据源 -->    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">        <property name="driverClassName" value="${jdbc.driver}"/>        <property name="url" value="${jdbc.url}"/>        <property name="username" value="${jdbc.username}"/>        <property name="password" value="${jdbc.password}"/>        <property name="filters" value="stat"/>        <property name="maxActive" value="10"/>        <property name="initialSize" value="1"/>        <property name="maxWait" value="60000"/>        <property name="minIdle" value="1"/>        <property name="timeBetweenEvictionRunsMillis" value="60000"/>        <property name="minEvictableIdleTimeMillis" value="300000"/>        <property name="validationQuery" value="SELECT 'x'"/>        <property name="testWhileIdle" value="true"/>        <property name="testOnBorrow" value="false"/>        <property name="testOnReturn" value="false"/>        <property name="poolPreparedStatements" value="true"/>        <property name="maxPoolPreparedStatementPerConnectionSize" value="50"/>        <property name="maxOpenPreparedStatements" value="100"/>    </bean>    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">        <property name="dataSource" ref="dataSource"/>        <property name="hibernateProperties">            <props>                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>                <prop key="hibernate.current_session_context_class">thread</prop>                <prop key="hibernate.show_sql">true</prop>                <prop key="hibernate.format_sql">true</prop>                <prop key="hibernate.hbm2ddl.auto">update</prop>            </props>        </property>        <property name="packagesToScan" value="com.lavasoft.demo.entity"/>    </bean>    <bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">        <property name="sessionFactory" ref="sessionFactory"/>    </bean>    <tx:advice id="txAdvice" transaction-manager="transactionManager">        <tx:attributes>            <tx:method name="select*" read-only="true"/>            <tx:method name="get*" read-only="true"/>            <tx:method name="load*" read-only="true"/>            <tx:method name="find*" read-only="true"/>            <tx:method name="query*" read-only="true"/>            <tx:method name="read*" read-only="true"/>            <tx:method name="sync*"/>            <tx:method name="*" propagation="REQUIRED" rollback-for="Exception"/>        </tx:attributes>    </tx:advice>    <aop:config>        <aop:pointcut id="pointcut" expression="execution(* com.lavasoft.demo.service.*Impl.*(..))"/>        <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>    </aop:config></beans>

struts.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC        "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"        "http://struts.apache.org/dtds/struts-2.3.dtd"><struts>    <constant name="struts.devMode" value="true"/>    <constant name="struts.i18n.encoding" value="UTF-8" />    <constant name="struts.convention.result.path" value="/WEB-INF/pages"/>    <constant name="struts.convention.package.locators" value="web,action"/>    <constant name="struts.objectFactory" value="spring"/>    <constant name="struts.configuration.xml.reload" value="true"/>    <package name="demo" extends="struts-default" namespace="/demo">        <global-results>            <result name="login">/index.jsp</result>            <result name="error">/error.jsp</result>        </global-results>    </package></struts>

web.xml

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" 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_2_5.xsd">    <welcome-file-list>        <welcome-file>login.html</welcome-file>    </welcome-file-list>    <filter>        <filter-name>encodingFilter</filter-name>        <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>        <init-param>            <param-name>encoding</param-name>            <param-value>UTF-8</param-value>        </init-param>    </filter>    <filter-mapping>        <filter-name>encodingFilter</filter-name>        <url-pattern>/*</url-pattern>    </filter-mapping>    <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>    <context-param>        <param-name>log4jConfigLocation</param-name>        <param-value>classpath:log4j.properties</param-value>    </context-param>    <listener>        <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>    </listener>    <context-param>        <param-name>contextConfigLocation</param-name>        <param-value>classpath:spring-config.xml</param-value>    </context-param>    <listener>        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>    <listener>        <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>    </listener>    <listener>        <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>    </listener></web-app>

Action.java

package com.lavasoft.demo.web.action;import com.lavasoft.demo.entity.User;import com.lavasoft.demo.service.UserService;import com.opensymphony.xwork2.ActionSupport;import org.apache.struts2.convention.annotation.Action;import org.apache.struts2.convention.annotation.Namespace;import org.apache.struts2.convention.annotation.Result;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Component;import javax.annotation.Resource;import java.util.List;/** * Created by Administrator on 14-4-23. * * @author leizhimin 14-4-23 下午3:09 */@Namespace("/demo")@Component@Scope("prototype")public class UserAction extends ActionSupport {    @Resource    private UserService userService;    private User user;    private List<User> userList;    @Action(value = "regUser", results = {            @Result(name = "success", location = "/WEB-INF/pages/login.jsp"),            @Result(name = "input", location = "/WEB-INF/pages/error.jsp")})    public String reg() {        System.out.println("----reg page----");        return SUCCESS;    }    @Action(value = "saveUser", results = {            @Result(name = "success", location = "/WEB-INF/pages/list.jsp"),            @Result(name = "input", location = "/WEB-INF/pages/error.jsp")})    public String save() {        System.out.println("----save----");        System.out.println(user);        userService.saveUser(user);        return SUCCESS;    }    public String list() {        System.out.println("----list----");        System.out.println(user);        userList = userService.queryUserAll();        return SUCCESS;    }    public List<User> getUserList() {        return userList;    }    public void setUserList(List<User> userList) {        this.userList = userList;    }    public UserService getUserService() {        return userService;    }    public void setUserService(UserService userService) {        this.userService = userService;    }    public User getUser() {        return user;    }    public void setUser(User user) {        this.user = user;    }}

UserDao.java

package com.lavasoft.demo.dao;import com.lavasoft.sshfw.core.BaseDaoImpl;import org.springframework.stereotype.Repository;/** * Created by Administrator on 14-4-23. * * @author leizhimin 14-4-23 下午6:43 */@Repositorypublic class UserDAO extends BaseDaoImpl {}

User.java

package com.lavasoft.demo.entity;import javax.persistence.*;import static javax.persistence.GenerationType.IDENTITY;@Entity@Table(name = "t_demo")public class User implements java.io.Serializable {    @Id    @GeneratedValue(strategy = IDENTITY)    @Column(name = "id", unique = true, nullable = false)    private Long id;    @Column(name = "username", length = 32)    private String username;    @Column(name = "password", length = 16)    private String password;    public User() {    }    public User(String username, String password) {        this.username = username;        this.password = password;    }    public Long getId() {        return id;    }    public void setId(Long id) {        this.id = id;    }    public String getUsername() {        return username;    }    public void setUsername(String username) {        this.username = username;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }    @Override    public String toString() {        return "User{" +                "id=" + id +                ", username='" + username + '\'' +                ", password='" + password + '\'' +                '}';    }}

UserService.java

package com.lavasoft.demo.service;import com.lavasoft.demo.dao.UserDAO;import com.lavasoft.demo.entity.User;import com.lavasoft.sshfw.core.BaseDao;import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import javax.annotation.Resource;import java.util.List;/** * Created by Administrator on 14-4-23. * * @author leizhimin 14-4-23 下午6:46 */@Servicepublic class UserService {    @Resource    private UserDAO userDAO;    public void saveUser(User user) {        userDAO.save(user);    }    public List<User> queryUserAll() {        return userDAO.findAll("from User", User.class);    }}
<%--  Created by IntelliJ IDEA.  User: leizhimin 14-4-23 下午5:51--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head>    <title></title></head><body><form action="/sshfw/demo/saveUser" method="get"><br>    用户名:<input type="text" name="user.username"/><br>    密码:<input type="text" name="user.password"/>    <input type="submit" name="保存"/></form></body></html>
CREATE TABLE `t_demo` (  `id` bigint(20) NOT NULL AUTO_INCREMENT,  `username` varchar(32) DEFAULT NULL,  `password` varchar(16) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
webcontent部署为:sshfw访问地址:http://localhost:8080/sshfw/demo/regUserhttp://localhost:8080/sshfw/demo/saveUser?user.username=wer&user.password=666666666

转载自:http://lavasoft.blog.51cto.com/62575/1401630/

0 0
原创粉丝点击