SSH的整合技巧与开发步骤

来源:互联网 发布:python编程第三版中文 编辑:程序博客网 时间:2024/05/16 07:14

夜已经深了,最近终于把SSH的整合结束了。

对于那些从事java web开发的人来说,现在能够独自一个人将其整合起来还是有一定难度的。

而我在这期间也是深有体会,走了很多的弯路。

对此把我这段时间所做的,和些许感想写出来希望对那些正在从事开发ssh的人有所帮助。 

首先谈一下开发的步骤,这也是很多人都想看到的东西了哈。呵呵!!!

 1:环境的搭建

     俗话说,磨刀不费砍柴工、一个好的IDE和一个好的环境是开发人员必须的,也是程序必要的。

     环境:MyEclipse 8.0 +mysql 5.0+jdk 1.6+tomcat6.0

 2: 分析实例(bean)

     这是java永恒的主题,其实就是我们常说的对象了啊。分析出了这块就等于把逻辑上的问题解决了哈。不过这个要具体的系统具体分析。所以在此就不做片面的分析了哈。

3:导入所需要的包(这个自己在网上收哈)

4:配置web.xml(如下)(一个filter 和一个监听器(spring 用的)

 <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>


 <listener>
       <listener-class>
         org.springframework.web.context.ContextLoaderListener
       </listener-class>
   </listener>

5:配置bean(一定是在第二个步骤做好了后才可进行否则会浪费很多时间的)

     bean 是很普通的javaBean 即:属性+属性对应的set和get方法、

     这也是低注入的一种体现(如下)

package com.org.pdw.bean;

public class User {
 
 
    private Integer id;
    private String username;
    private String password;
    private int age;
    
    
 public Integer getId() {
  return id;
 }
 public void setId(Integer 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;
 }
 public int getAge() {
  return age;
 }
 public void setAge(int age) {
  this.age = age;
 }
    
    
}

6:开发完了bean后就应该建立这个bean的hibernate-mapping了、

<hibernate-mapping>
   <class name="com.org.pdw.bean.User" table="user">
       <id name="id" type="java.lang.Integer" column="id">
          <generator class="increment"></generator>
       </id>
       <property name="username" type="string" column="username"></property>
       <property name="password" type="string" column="password"></property>
       <property name="age" type="java.lang.Integer" column="age"></property>
   </class>
      
</hibernate-mapping>

这个文件注意命名就可以了哈。命名要以 bean名字.hbm.xml 来命名。

7:建立dao 

    dao的作用当然就是具体的操作DB的了啊。当然我们是面向接口的编程所以也要建立一个接口了啊。

   习惯上接口的实现类的名字是接口名+Impl

import java.util.List;

import com.org.pdw.bean.User;

public interface UserDAO {
 
  public void save(User user);
  public void removeUser(User user);
  public User findUserById(Integer id);
  public List<User>findAllUsers();
  public void updateUser(User user);
 

}

实现类

package com.org.pdw.dao.impl;

import java.util.List;

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

import com.org.pdw.bean.User;
import com.org.pdw.dao.UserDAO;

public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {
   @SuppressWarnings("unchecked")
 public List<User> findAllUsers() {
  String hql="from User user order by user.id desc";
        return (List<User>)this.getHibernateTemplate().find(hql);
 }

 public User findUserById(Integer id) {
  User user=(User)this.getHibernateTemplate().get(User.class, id);
  return user;
 }

 public void removeUser(User user) {
  
       this.getHibernateTemplate().delete(user);
 }

 public void save(User user) {
  this.getHibernateTemplate().save(user);

 }

 public void updateUser(User user)
 {
  this.getHibernateTemplate().update(user);
 }

}

 

     

 

                  

               

         

8:建立service层。这层与dao层相似。所以就不再列出了。读者如有不解可以看一下前面的dao的写法

9:struts的建立。struts是一个实现类了MVC的框架。struts2比较简单。

       唯一需要注意的地方是 class这里已经不是正在的路径了。而是由spring来管理的了。所以在这里只需要配置一个代号

10:当然是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"
 xsi:schemaLocation="
http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
 <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
  
 <property name="url" value="jdbc:mysql://localhost:3306/pdw"></property>
 <property name="username" value="root"></property>
 <property name="password" value="123456"></property>
 <property name="maxActive" value="100"></property>
 <property name="maxIdle" value="30"></property>
 <property name="maxWait" value="500"></property>
 <property name="defaultAutoCommit" value="true"></property>
</bean>

<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
 <property name="dataSource" ref="dataSource"></property>
 <property name="hibernateProperties">
  <props>
   <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
   <prop key="hibernate.show_sql">true</prop>
  </props>
 </property>
 <property name="mappingResources">
  <list>
   <value>com/org/pdw/bean/User.hbm.xml</value>
  </list>
 </property>
</bean>

<bean id="userDao" class="com.org.pdw.dao.impl.UserDAOImpl" scope="singleton">
 <property name="sessionFactory">
  <ref bean="sessionFactory"/>
 </property>
</bean>

<bean id="userService" class="com.org.pdw.UserServiceImpl.UserServiceImpl">
 <property name="userDao" ref="userDao"></property>
</bean>

<bean id="saveUserAction" class="com.org.pdw.action.SaveUserAction" scope="prototype">
 <property name="service" ref="userService"></property>
</bean>


<bean id="listUserAction" class="com.org.pdw.action.ListUserAction" scope="prototype">
 <property name="service" ref="userService"></property>
</bean>

<bean id="deleteUserAction" class="com.org.pdw.action.DeleteUserAction" scope="prototype">
 <property name="service" ref="userService"></property>
</bean>

<bean id="updatePUserAction" class="com.org.pdw.action.UpdatePUserAction" scope="prototype">
 <property name="service" ref="userService"></property>
</bean>

<bean id="updateUserAction" class="com.org.pdw.action.UpdateUserAction" scope="prototype">
 <property name="service" ref="userService"></property>
</bean>

<bean id="generateExcelAction" class="com.org.pdw.action.GenerateExcelAction" scope="singleton">
 <property name="service" ref="userService"></property>
</bean>

</beans>

11:最后就是建立数据库了啊。数据库指明数据库和表字段就可以了。至于说中文的问题就要在配置数据库的时候指定为utf-8就没事了哈、

12:建立自己的视图(jsp)

13: 发布工程。启动tomcat

至此;系统开发完毕。本人才疏学浅,有很多地方可能没说明白,如果有疑问的可以联系本人koxiya123@163.com.欢迎批评指正。