JAVA 项目开发实例
学院经济与管理学院
专业 10级信管专业(2)班
姓名黄振阳
学号 1006107031
1.首先开始搭建项目环境,步骤如下:
使用平台:MyEclipse 6.0
框架版本:Struts 1.2 Hibernate 3.0 Spring 2.0
1>添加过程:
<1> 新建项目。 Package Explorer视图下,右键单击 New -> Web Project;
第二步:(建立项目,包结构,导入所需jar文件)
新建一个web project:
建立包结构如下:
各包功能说明:
com.ssh.config : 配置文件(*.properties),如数据库配置信息com.ssh.resource : 资源文件
https://www.wendangku.net/doc/5c6024806.html,m : 公共工具(util)包
com.ssh.util.orm.hibernate : hibernate DAO 模板com.ssh.model : 各实体类文件
com.ssh.service : 业务逻辑包相当于biz
com.ssh..test : 测试包
com.ssh.action : struts Action
包结构可以根据自己需要自行划分
导入jar文件:
新建一个User Library: sshJars
添加jar文件:
将新建的User Library: sshJars加入到项目中:
第三步:撰写资源文件
jdbc.properties
在jdbc.properties 里写上连接数据库的配置信息,此文件的配置信息用于在spring的配置文件中使用,数据库的配置信息也可以写到Spring 的配置文件中,这在一个jdbc.properties文件中是为了方便更改.
在com.ssh.resource包中新建下列文件:
各文件详细内容及说明如下:
----------------------------------------------------------------------------------------------------------------------------------------- applicationContext.xml:
xmlns:xsi="https://www.wendangku.net/doc/5c6024806.html,/2001/XMLSchema-instance" xmlns:jee="https://www.wendangku.net/doc/5c6024806.html,/schema/jee" xmlns:tx="https://www.wendangku.net/doc/5c6024806.html,/schema/tx" xmlns:context="https://www.wendangku.net/doc/5c6024806.html,/schema/context" xsi:schemaLocation="https://www.wendangku.net/doc/5c6024806.html,/schema/beans https://www.wendangku.net/doc/5c6024806.html,/schema/beans/spring-beans-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/tx https://www.wendangku.net/doc/5c6024806.html,/schema/tx/spring-tx-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/jee https://www.wendangku.net/doc/5c6024806.html,/schema/jee/spring-jee-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/context https://www.wendangku.net/doc/5c6024806.html,/schema/context/spring-context-2.5.xsd" default-lazy-init="true"> class="org.springframework.beans.factory.config.PropertyPlaceholderConfigure r"> class="org.springframework.jdbc.datasource.DriverManagerDataSource"> class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactor yBean"> class=”org.springframework.orm.hibernate3.LocalSessionFactoryBean”--> key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider key="hibernate.cache.provider_configuration_file_resource_path">/ehcache-hib ernate.xml 是.xml 配置同则应设置 class="org.springframework.orm.hibernate3.HibernateTransactionManager"> class="org.springframework.beans.factory.annotation.RequiredAnnotationBeanPo stProcessor" />
----------------------------------------------------------------------------------------------------------------------------------------- applicationContext-security.xml:
xmlns:beans="https://www.wendangku.net/doc/5c6024806.html,/schema/beans" xmlns:xsi="https://www.wendangku.net/doc/5c6024806.html,/2001/XMLSchema-instance" xsi:schemaLocation="https://www.wendangku.net/doc/5c6024806.html,/schema/beans https://www.wendangku.net/doc/5c6024806.html,/schema/beans/spring-beans-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/security https://www.wendangku.net/doc/5c6024806.html,/schema/security/spring-security-2.0.xsd" default-autowire="byType" default-lazy-init="true">
此文件用于AOP的安全验证,也可不添加
----------------------------------------------------------------------------------------------------------------------------------------- applicationContext-service.xml
xmlns:xsi="https://www.wendangku.net/doc/5c6024806.html,/2001/XMLSchema-instance" xsi:schemaLocation="https://www.wendangku.net/doc/5c6024806.html,/schema/beans https://www.wendangku.net/doc/5c6024806.html,/schema/beans/spring-beans-2.5.xsd" default-autowire="byType" default-lazy-init="true">
Service(业务逻辑类)的注入
----------------------------------------------------------------------------------------------------------------------------------------- ehcache-hibernate.xml:
overflowToDisk="true" /> Hibernate缓存的配置(可以不做配置,如果需要才使用缓存才做配置,建议配置上) ----------------------------------------------------------------------------------------------------------------------------------------- 第四步:在https://www.wendangku.net/doc/5c6024806.html,m 包下添加下列文件 此包为hibernate DAO模板中用到的各种工具类,各文件可以在打包的ssh_test项目中找到. 第五步:添加hibernate DAO 模板 此包为hibernate DAO模板,SimpleHibernateTemplate.java 中包含了对各实体(增,删,改,查,分页查等)的泛形方法。各文件可以在打包的ssh_test项目中找到.。 第六步:以上的工作还不够,我们还需要进行WEB方面的配置 配置web.xml , struts-config.xml , action-servlet.xml 各文件内容如下: ----------------------------------------------------------------------------------------------------------------------------------------- xmlns="https://www.wendangku.net/doc/5c6024806.html,/xml/ns/javaee" xmlns:web="https://www.wendangku.net/doc/5c6024806.html,/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="https://www.wendangku.net/doc/5c6024806.html,/xml/ns/javaee https://www.wendangku.net/doc/5c6024806.html,/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> org.springframework.web.context.ContextLoaderListener classpath:com/ssh/resource/applicationContext*.xml org.apache.struts.action.ActionServlet ----------------------------------------------------------------------------------------------------------------------------------------- struts-config.xml: "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "https://www.wendangku.net/doc/5c6024806.html,/struts/dtds/struts-config_1_2.dtd"> type="org.apache.struts.action.DynaActionForm"> type="https://www.wendangku.net/doc/5c6024806.html,ng.String"> name="loginForm"> value="org.springframework.web.struts.DelegatingRequestProcessor" /> className="org.springframework.web.struts.ContextLoaderPlugIn" /> ----------------------------------------------------------------------------------------------------------------------------------------- action-servlet.xml: 注意:此文件struts 1.x 必须配置,而struts 2.x 不需要配置 xmlns:xsi="https://www.wendangku.net/doc/5c6024806.html,/2001/XMLSchema-instance" xmlns:jee="https://www.wendangku.net/doc/5c6024806.html,/schema/jee" xmlns:tx="https://www.wendangku.net/doc/5c6024806.html,/schema/tx" xmlns:context="https://www.wendangku.net/doc/5c6024806.html,/schema/context" xsi:schemaLocation="https://www.wendangku.net/doc/5c6024806.html,/schema/beans https://www.wendangku.net/doc/5c6024806.html,/schema/beans/spring-beans-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/tx https://www.wendangku.net/doc/5c6024806.html,/schema/tx/spring-tx-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/jee https://www.wendangku.net/doc/5c6024806.html,/schema/jee/spring-jee-2.5.xsd https://www.wendangku.net/doc/5c6024806.html,/schema/context https://www.wendangku.net/doc/5c6024806.html,/schema/context/spring-context-2.5.xsd" default-autowire="byName" default-lazy-init="true"> ----------------------------------------------------------------------------------------------------------------------------------------- 至此,我们的Spring+Struts+Hibernate集成工作完成! 下面我们做测试: com.ssh.model 包下建立User.java package com.ssh.model; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Entity; @Entity @Table(name = "user") public class User { private Integer id; private String username; private String password; public User() { super(); } @Id @GeneratedValue(strategy=GenerationType.IDENTITY) public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { https://www.wendangku.net/doc/5c6024806.html,ername = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } } com.ssh.service 包下建立UserService.java package com.ssh.service; import java.util.List; import https://www.wendangku.net/doc/5c6024806.html,er; import com.ssh.util.orm.hibernate.Page; import com.ssh.util.orm.hibernate.SimpleHibernateTemplate; import org.hibernate.SessionFactory; import org.springframework.beans.factory.annotation.Required; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.StringUtils; /* *@author onlyflag */ @Transactional public class UserService { private SimpleHibernateTemplate @Required public void setSessionFactory(SessionFactory sessionFactory) { userDao = new SimpleHibernateTemplate } @Transactional(readOnly=true) public User getUser(Long id) { return userDao.get(id); } @Transactional(readOnly=true) public Page { return userDao.findAll(page); } @Transactional(readOnly=true) public User getUserByLoginName(String loginName) { return userDao.findUniqueByProperty("loginName",loginName); } public void saveUser(User user) { userDao.save(user); } public void deleteUser(Long id) { User user = userDao.get(id); userDao.delete(user); } public List { return userDao.findByProperty(propertyName, value); } public User findUniqueByProperty(String propertyName,String value) { return userDao.findUniqueByProperty(propertyName, value); } @Transactional public boolean isLoginNameUnique(String loginName,String orgLoginName) { return userDao.isUnique("loginName",loginName, orgLoginName); } public SimpleHibernateTemplate return userDao; } } 有了:User 和UserService 我们就可写一个测试类来进行User 类的各种操作: com.ssh.test 下建立Test.java package com.ssh.test; import https://www.wendangku.net/doc/5c6024806.html,er; import https://www.wendangku.net/doc/5c6024806.html,erService; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class Test { public static void main(String[] args){ ApplicationContext ctx=new ClassPathXmlApplicationContext("com.ssh /resource/applicationContext*.xml"); UserService us=(UserService) ctx.getBean("userService"); User user=new User(); user.setPassword("123"); user.setUsername("onlyflag"); us.saveUser(user); } } 实例说明:一个网站登录的例子,比较简单,但能说明各层是如何协调工作的。 工具:jdk1.5,eclipse3.2,myeclipse5.0GA,mysql5.0,tomcat5.5,至于这几个工具到底该怎么装这里我就不多说了,大家不清楚的可以到网上搜搜。下面是具体操作步骤: 预备工作:用mysql创建一个test数据库,再创建一个user表,再创建两个字段username和password。脚本如下 DROP DATABASE IF EXISTS `test`; CREATE DATABASE `test` USE `test`; CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `username` varchar(30) NOT NULL default '', `password` varchar(30) default '', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=gb2312; 打开myeclipse的database explore透视图 右键单击左侧的空白区域,点击new 按钮 单击“configure database driver”来配置数据库的驱动,你必须有mysql的jdbc驱动,没有的到mysql 的官方网站上下载。 测试数据库配置是否成功。 1.新建一个myeclipse的web工程 2.引入Spring包右键工程名 注意:这里为了省得以后再添加spring的相关包,所以一次性的选中了所有的包。选中 Copy选项,它会把这些包拷贝到/WebRoot/WEB-INF/lib目录下,方便以后的实际部署。 3.添加hibernate包 系统会检测到该工程已经添加了Spring包,选择使用Spring的配置文件 x 点击next