国家电力项目SSH搭建
SSH项目框架搭建总结:
1、建立Web工程
* 导入需要的jar的包
db:连接数据库的驱动包
hibernate:使用hibernate的jar包
jstl:java的标准标签库
junit:测试用到的jar包
spring:使用spring的jar包
struts2:使用struts2的jar包
* 项目体系分层:
cn.itcast.elec.containner:自定义的spring容器,用于在控制层调用操作业务层
cn.itcast.elec.dao:项目的dao层,负责连接数据库的操作
cn.itcast.elec.daomain:封装实体对象(PO对象),对应连接数据库表的映射文件
cn.itcast.elec.service:项目service层,负责操作各个功能模块的业务逻辑
cn.itcast.elec.util:封装系统使用到的公用类的方法和属性
cn.itcast.elec.web.action:系统控制层,负责页面和项目后台的跳转
cn.itcast.elec.web.form:封装值对象(VO对象),对应页面传递的表单值的属性
junit:测试类
* 配置文件
放置到src的目录下:
beans.xml:spring的配置文件
hibernate.cfg.xml:hibernate的配置文件
struts.xml:struts2的配置文件
2、建立持久层
* 在cn.itcast.elec.domain中创建持久层的对象ElecText.java
public class ElecText implements java.io.Serializable {
private String textID;
private String textName;
private Date textDate;
private String textRemark;
}
* 对应javabean的PO对象,创建于表的映射文件ElecText.hbm.xml文件
<hibernate-mapping>
<class name="cn.itcast.elec.domain.ElecText" table="Elec_Text">
<id name="textID" type="string">
<column name="textID" sql-type="varchar(50)" not-null="true"/>
<generator class="uuid"/>
</id>
<property name="textName" type="string">
<column name="textName" sql-type="varchar(50)"/>
</property>
<property name="textDate" type="date">
<column name="textDate" length="50"/>
</property>
<property name="textRemark" type="string">
<column name="textRemark" sql-type="varchar(500)"/>
</property>
</class>
</hibernate-mapping>
* 创建连接数据库的hibernate配置文件,hibernate.cfg.xml文件,放置到src目录下
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/itcast1222elec</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<property name="hibernate.show_sql">true</property>
<mapping resource="cn/itcast/elec/domain/ElecText.hbm.xml"/>
</session-factory>
</hibernate-configuration>
3、DAO层的搭建
* 在cn.itcast.elec.dao目录下,创建ICommonDao的接口
public interface ICommonDao<T> {
public void save(T entity);
}
* 在cn.itcast.elec.dao目录下,创建对ICommonDao的接口的实现类CommonDaoImpl
public class CommonDaoImpl<T> extends HibernateDaoSupport implements ICommonDao<T> {
public void save(T entity) {
this.getHibernateTemplate().save(entity);
}
@Resource(name="sessionFactory")
public final void setSessionFactoryDi(SessionFactory sessionFactory) {
super.setSessionFactory(sessionFactory);
}
}
* 在cn.itcast.elec.dao.impl目录下,创建IelecTextDao的接口
public interface IElecTextDao extends ICommonDao<ElecText> {
public final static String SERVICE_NAME = "cn.itcast.elec.dao.impl.ElecTextDaoImpl";
}
* 在cn.itcast.elec.dao.impl目录下,创建IelecTextDao接口的实现类ElecTextDaoImpl
@Repository(IElecTextDao.SERVICE_NAME)
public class ElecTextDaoImpl extends CommonDaoImpl<ElecText> implements IElecTextDao {
}
* 配置spring的配置文件beans.xml文件
<!-- 1:配置注解的自动扫描的范围 -->
<context:component-scan base-package="cn.itcast.elec"></context:component-scan>
<!-- 2:配置数据源 -->
<!-- 3:创建sessionFactory,这是spring整合hibernate的入口 -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation">
<value>
classpath:hibernate.cfg.xml
</value>
</property>
</bean>
<!-- 4:创建事务管理器 -->
<bean id="txManage" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- 5:以注解的形式管理事务 -->
<tx:annotation-driven transaction-manager="txManage"/>
</beans>
4、建立Service层
* 在cn.itcast.elec.service目录下,创建IElecTextService的接口
public interface IElecTextService {
public final static String SERVICE_NAME = "cn.itcast.elec.service.impl.ElecTextServiceImpl";
public void saveElecText(ElecText elecText);
}
* 在cn.itcast.elec.service.impl目录下,创建IElecTextService接口的实现类ElecTextServiceImpl
@Transactional(readOnly=true)
@Service(IElecTextService.SERVICE_NAME)
public class ElecTextServiceImpl implements IElecTextService {
@Resource(name=IElecTextDao.SERVICE_NAME)
private IElecTextDao elecTextDao;
@Transactional(isolation=Isolation.DEFAULT,propagation=Propagation.REQUIRED,readOnly=false)
public void saveElecText(ElecText elecText){
elecTextDao.save(elecText);
}
}
5、建立控制(Action)层
* 导入系统需要的css、script、images的包
以及需要的jsp的包menu(系统登录、首页显示的jsp页面)、system(系统管理中的功能页面)
* 在cn.itcast.elec.web.action创建ElecTextAction
@SuppressWarnings("serial")
public class ElecTextAction extends BaseAction implements ModelDriven<ElecTextForm>{
private IElecTextService elecTextService = (IElecTextService)ServiceProvider.getService(IElecTextService.SERVICE_NAME);
private ElecTextForm elecTextForm = new ElecTextForm();
public ElecTextForm getModel() {
return elecTextForm;
}
public String save(){
ElecText elecText = new ElecText();
elecText.setTextName(elecTextForm.getTextName());//测试名称
elecText.setTextDate(StringHelper.stringConvertDate(elecTextForm.getTextDate()));//测试日期
elecText.setTextRemark(elecTextForm.getTextRemark());//测试备注
elecTextService.saveElecText(elecText);
return "save";
}
}
* 在cn.itcast.elec.web.form创建ElecTextForm(值对象)
public class ElecTextForm implements java.io.Serializable {
private String textID;
private String textName;
private String textDate;
private String textRemark;
}
* 在cn.itcast.elec.web.action创建BaseAction类
@SuppressWarnings("serial")
public class BaseAction extends ActionSupport implements ServletRequestAware,ServletResponseAware {
@SuppressWarnings("unused")
protected HttpServletRequest request = null;
@SuppressWarnings("unused")
protected HttpServletResponse response = null;
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
public void setServletResponse(HttpServletResponse response) {
this.response = response;
}
}
* 自定义spring的容器
* 在cn.itcast.elec.container包下,建立ServiceProviderCord类
public class ServiceProviderCord {
protected static ApplicationContext ac;
public static void load(String filename){
ac = new ClassPathXmlApplicationContext(filename);
}
}
* 在cn.itcast.elec.container包下,建立ServiceProvider类
public class ServiceProvider {
public static ServiceProviderCord spc;
static{
spc = new ServiceProviderCord();
spc.load("beans.xml");
}
public static Object getService(String serviceName){
if(StringUtils.isBlank(serviceName)){
throw new RuntimeException("当前服务名称不存在");
}
Object object = null;
if(spc.ac.containsBean(serviceName)){
object = spc.ac.getBean(serviceName);
}
if(object==null){
throw new RuntimeException("当前服务名称【"+serviceName+"】下的服务节点不存在");
}
return object;
}
}
* 建立struts的配置,放置到src的目录下
<struts>
<!-- 配置action的访问路径为.do的形式 -->
<constant name="struts.action.extension" value="do"></constant>
<!-- 配置struts的开发模式 -->
<constant name="struts.devMode" value="true"></constant>
<!-- 配置struts的简单模式 -->
<constant name="struts.ui.theme" value="simple"></constant>
<package name="system" namespace="/system" extends="struts-default">
<action name="elecTextAction_*" class="cn.itcast.elec.web.action.ElecTextAction" method="{1}">
<result name="save">
/system/textAdd.jsp
</result>
</action>
</package>
</struts>
同时在web.xml中添加struts的过滤器
<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>
国家电力项目SSH搭建的更多相关文章
- SSH电力项目一 搭建Hibernate框架
Hibernate所需要的基本文件: ElectText.java ElecText.hbm.xml hibernate.cfg.xml 第一步:创建测试表Elec_Text: create tabl ...
- SSH电力项目
第一步:创建测试表Elec_Text: create table Elec_Text(textID varchar(50) not null primary key,textName varchar( ...
- Django练习项目之搭建博客
背景:自从今年回家过年后,来到公司给我转了试用,我的学习效率感觉不如从前,而且刚步入社会我总是想要怎么想明白想清楚一些事,这通常会花掉,消耗我大量的精力,因为我想把我的生活管理规划好了,而在it技术学 ...
- Angular企业级开发(5)-项目框架搭建
1.AngularJS Seed项目目录结构 AngularJS官方网站提供了一个angular-phonecat项目,另外一个就是Angular-Seed项目.所以大多数团队会基于Angular-S ...
- 架构系列:ASP.NET 项目结构搭建
我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都简单的单项目 (2)为 ...
- ssh搭建后的简化
关于ssh如何搭建还有不懂得朋友可以参考以下网址:http://www.cnblogs.com/LarryBlogger/p/5841446.html 在这里我就不重复再讲了! ssh搭建后的简化 简 ...
- mvc项目架构搭建之UI层的搭建
项目架构搭建之UI层的搭建 Contents 系列一[架构概览] 0.项目简介 1.项目解决方案分层方案 2.所用到的技术 3.项目引用关系 系列二[架构搭建初步] 4.项目架构各部分解析 5.项目创 ...
- 【JAVA - SSM】之SSM入门项目的搭建
最近学习了一下SSM.SSM是 Spring + SpringMVC + MyBatis 整合框架,非常适合WEB后台开发,也是当前很多人的不二选择.这篇博客带大家来创建一个学习SSM的入门程序,从搭 ...
- NET 项目结构搭建
NET 项目结构搭建 我们头开始,从简单的单项目解决方案,逐步添加业务逻辑的约束,从应用逻辑和领域逻辑两方面考虑,从简单的单个项目逐步搭建一个多项目的解决方案.主要内容:(1)搭建应用逻辑和领域逻辑都 ...
随机推荐
- 树链剖分(+线段树)(codevs4633)
type node=^link; link=record des:longint; next:node; end; type seg=record z,y,lc,rc,toadd,sum:longin ...
- MATLAB读取和写入Excel文件
1. 读取Excel文件 (a) 命令方式xlsread: 读取命令:[data,text] = xlsread(FileName, SheetName, Range); data保存的是数据单元 ...
- [转]史上最全最强SpringMVC详细示例实战教程
原文:http://www.cnblogs.com/sunniest/p/4555801.html?utm_source=tuicool&utm_medium=referral SpringM ...
- 一个奇妙的java坑:Long 类型的比较
Long userId=127L; Long authorId=127L; System.out.println(userId==authorId);//true userId=128L; autho ...
- MAC OS上Nginx安装
admin@admindeMac:local]$ brew install nginx ==> Installing dependencies for nginx: pcre, openssl ...
- 一次神奇的WCF的404错误解决
现象:浏览器中可以访问元数据,但是运行的时候却报404的异常,说目标地址找不到. 折腾了一下午. 引用服务后config中的client的address是这样的http://host/aspx/Ser ...
- 枚举型Enum和结构型Stuct
枚举型实质就是使用符号来表示的一组相互关联的数据. Season currentSeason,nextSeason; currentSeason = Season.Spring; nextSeason ...
- [转]oracle设计数据库应选择正确的数据类型
原文地址:http://blog.sina.com.cn/s/blog_5014663501007n40.html 在设计数据库的时候,选择正确的数据类型,往往可以避免很多的问题,正确理解数据库的类型 ...
- SpringMVC学习系列(8) 之 国际化
一.基于浏览器请求的国际化实现: 1)在 spring的配置文件中添加 <bean id="messageSource" class="org.springfram ...
- EasyIcon:免费图标搜索和下载平台
EasyIcon是一个为设计师提供免费图标搜索和下载服务的网站. 步骤如下: 第一步,打开EasyIcon网站主页: http://www.easyicon.net/ 第二步,在EasyIcon网站的 ...