java基盘JavaScript_JavaWeb学习:SSH整合(无障碍整合)
一、创建Web项目,引入jar包
①、Struts2的jar包
asm-7.3.1.jar:提供了字节码的读写的功能,包含了核心的功能,而其他的jar,都是基于这个核心的扩展.
asm-commons-7.3.1.jar:提供了基于事件的表现形式。
asm-tree-7.3.1.jar:提供了基于对象的表现形式。
commons-fileupload-1.4.jar:文件上传组件,2.1.6版本后需要加入此文件
commons-io-2.6.jar:传文件依赖的jar包
commons-lang3-3.8.1.jar:对java.lang包的增强
freemarker-2.3.30.jar:Struts 2的UI标签的模板使用FreeMarker编写
javassist-3.20.0-GA.jar:代码生成工具, struts2用它在运行时扩展 Java类
log4j-api-2.12.1.jar:日志
log4j-core-2.12.1.jar:日志
ognl-3.1.28.jar:对象图导航语言(Object Graph Navigation Language), struts2框架通过其读写对象的属性
struts2-convention-plugin-2.5.25.jar:Struts2的注解开发包
struts2-core-2.5.25.jar:Struts 2框架的核心类库
struts2-json-plugin-2.5.25.jar:Struts2整合Ajax的开发包
struts2-spring-plugin-2.5.25.jar:Struts2整合Spring的开发包
②、Hibernate的jar包
Hibernate必须包(hibernate-release-5.4.23.Final\lib\required)
数据库驱动
使用C3P0连接池(hibernate-release-5.4.23.Final\lib\optional\c3p0)
注意:Struts2和Hibernate都引入了一个相同的jar包(javassist包)。删除一个
③、Spring的jar包
IOC的开发
com.springsource.org.apache.commons.logging-1.1.1.jar
spring-beans-5.2.9.RELEASE.jar
spring-context-5.2.9.RELEASE.jar
spring-core-5.2.9.RELEASE.jar
spring-expression-5.2.9.RELEASE.jar
AOP的开发
com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
spring-aop-5.2.9.RELEASE.jar
spring-aspects-5.2.9.RELEASE.jar
JDBC模板的开发
spring-jdbc-5.2.9.RELEASE.jar
spring-tx-5.2.9.RELEASE.jar (事务管理)
整合web项目的开发
spring-web-5.2.9.RELEASE.jar
整合单元测试的开发
spring-test-5.2.9.RELEASE.jar
整合Hibernate的开发
spring-orm-5.2.9.RELEASE.jar
spring-jdbc-5.2.9.RELEASE.jar
spring-tx-5.2.9.RELEASE.jar (事务管理)
二、引入配置文件
Struts的配置文件
web.xml:Struts2的核心配置
struts2
org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter
struts2
/*
struts.xml:管理Action
/p>
"-//Apache Software Foundation//DTD Struts Configuration 2.5//EN"
"http://struts.apache.org/dtds/struts-2.5.dtd">
Hibernate的配置文件
hibernate.cfg.xml
/p>
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
com.microsoft.sqlserver.jdbc.SQLServerDriver
jdbc:sqlserver://localhost:1433;databaseName=HibernateDB;
sa
[email protected]
org.hibernate.dialect.SQLServer2008Dialect
true
true
update
2
thread
org.hibernate.connection.C3P0ConnectionProvider
5
20
120
3000
映射文件(类名.hbm.xml):持久化类必要配置 Hibernate抓取策略
Spring的配置文件
web.xml:Spring的核心监听器
contextConfigLocation
classpath:applicationContext.xml
org.springframework.web.context.ContextLoaderListener
applicationContext.xml:Spring的核心配置(主要用于管理Bean,整合Struts2和Hibernate)
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd">
日志配置文件
三、创建包结构
四、创建相关类
五、编写Url
- 新增客户
六、编写新增页面
客户名称:客户级别 :信息来源 :所属行业 :固定电话 :移动电话 :
七、疏通基盘
①、编写Action
public class CustomerAction extends ActionSupport implements ModelDriven{private Customer customer=newCustomer();
@OverridepublicCustomer getModel() {returncustomer;
}public voidsave() {
System.out.println("Action中save方法执行了");
}
}
②、配置struts.xml
八、在Action访问Service
①、传统方式
WebApplicationContext webApplicationContext =WebApplicationContextUtils.getWebApplicationContext(ServletActionContext.getServletContext());
Object bean= webApplicationContext.getBean("CustomerServiceImpl");
②、Spring整合Struts2方式一:Action由Struts2管理
Ⅰ、引入struts-spring-plugin.jar
Ⅱ、在struts.xml中设置常量struts.objectFactory
开启此常量会使得struts.objectFactory.spring.autowire=name常量有效,此常量(struts.objectFactory.spring.autowire)主要将Service按照名称(是指applicationContext.xml中bean标签中id)自动注入到Action中
Ⅲ、配置applicationContext.xml,将CustomerServiceImpl交给Spring管理
Ⅳ、编写Action
public class CustomerAction extends ActionSupport implements ModelDriven{private Customer customer=newCustomer();
@OverridepublicCustomer getModel() {returncustomer;
}//属性注入
privateCustomerService customerService;public voidsetCustomerService(CustomerService customerService) {this.customerService =customerService;
}publicString save() {
System.out.println("Action中save方法执行了");
customerService.save(customer);returnNONE;
}
}
③、Spring整合Struts2方式一:Action由Spring管理
Ⅰ、引入struts-spring-plugin.jar
Ⅱ、将Action交给Spring管理,并注入Service
注意:配置Action为多例(scope="prototype")
Ⅲ、配置struts.xml的Action,action标签中class=“”的值为上面Spring的bean标签中的id的值
九、Service访问Dao
①、将Dao交给Spring管理
②、Dao注入到Service中
public class CustomerServiceImpl implementsCustomerService {//属性注入
privateCustomerDao customerDao;public voidsetCustomerDao(CustomerDao customerDao) {this.customerDao =customerDao;
}
@Overridepublic voidsave(Customer customer) {
System.out.println("CustomerServiceImpl的save方法执行了");
customerDao.save(customer);
}
}
十、Dao方法Hibernate
①、创建持久化类
Ⅰ、创建类
public classCustomer {privateLong cust_id;privateString cust_name;privateString cust_source;privateString cust_industry;privateString cust_level;privateString cust_phone;privateString cust_mobile;
}
Ⅱ、映射文件
Ⅲ、hibernate.cfg.xml添加映射
②、Spring整合Hibernate(需要引入spring-orm-5.2.9.RELEASE.jar)
Ⅰ、在Spring的配置文件中,加载Hibernate的配置文件
Ⅱ、DAO继承HibernateDaoSupport,Spring提供了一个Hibernate的模板类简化Hibernate开发
1、HibernateDaoSupport中由sessionfactory属性,可用于属性注入,并且在设置sessionFactory时,会创建Hibernate的模板类(hibernateTemplate)
public final voidsetSessionFactory(SessionFactory sessionFactory) {if (this.hibernateTemplate == null || sessionFactory != this.hibernateTemplate.getSessionFactory()) {this.hibernateTemplate =createHibernateTemplate(sessionFactory);
}
}
2、编写Dao
public class CustomerDaoImpl extends HibernateDaoSupport implementsCustomerDao {
@Overridepublic voidsave(Customer customer) {
System.out.println("CustomerDaoImpl的save方法执行了");this.getHibernateTemplate().save(customer);
}
}
3、在Dao中注入sessionfactory
测试抛出异常:Turn your Session into FlushMode.COMMIT/AUTO or remove ‘readOnly‘ marker from transaction definition.
3.1、解决方案:配置Spring的事务管理
3.1.1、配置事务管理器
3.1.2、开启事务注解
3.1.3、在Service上使用事务注解
@Transactionalpublic class CustomerServiceImpl implements CustomerService {
原文:https://www.cnblogs.com/WarBlog/p/14140346.html
java基盘JavaScript_JavaWeb学习:SSH整合(无障碍整合)相关推荐
- java ee ssh三大框架知识点_详解JAVAEE——SSH三大框架整合(spring+struts2+hibernate)...
详解JAVAEE--SSH三大框架整合(spring+struts2+hibernate) 发布时间:2020-09-17 13:34:05 来源:脚本之家 阅读:64 作者:kent鹏 一.整合原理 ...
- Java菜鸟到大牛学习路线培训视频
百度网盘下载 这是一套java菜鸟到大牛学习路线培训教程,由工作了10年的资深Java架构师整理.主要分5个阶段:Java程序员->Java初级软件工程师->Java中级软件工程师-> ...
- python爬虫架构师之路_一位资深 架构师大牛给予Java技术提升的学习路线建议
一位资深 架构师大牛给予Java技术提升的学习路线建议 对于工作多年的程序员而言,日后的职业发展无非是继续专精技术.转型管理和晋升架构师三种选择. 架构师在一家公司有多重要.优秀架构师需要具备怎样的素 ...
- java 与大数据学习较好的网站
C# C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿! https://www.cnblogs.com/doforfuture/p/6293926.htm ...
- 从阿里社招面试,看“野生”Java程序员的学习道路
引言 很尴尬的是,这个类型的文章其实之前笔者就写过,原文章里,笔者自称LZ(也就是楼主,有人说是老子的简写,笔者只想说,这位同学你站出来,保证不打死你,-_-),原文章名称叫做<回答阿里社招面试 ...
- Java菜鸟到大牛学习路线培训教程
这是一套Java菜鸟到大牛学习路线培训教程,由工作了10年的资深Java架构师整理.主要分5个阶段:Java程序员->Java初级软件工程师->Java中级软件工程师->Java高级 ...
- java培训分享:java培训架构师学习线路图
本期java教程分享主要是讲解关于java培训架构师方面的内容,主要针对java架构师的学习线路图进行一个知识点的概括,下面来看看学习java架构师都需要了解哪些内容吧. java培训分享:java培 ...
- 零基础java培训如何规划学习路线
学习java的同学越来越多,很多小伙伴都想知道零基础如何学习java?如何安排学习路线,零基础java培训如何规划学习路线?那么针对以上问题,今天小编特意分享这篇Java学习指南,希望对那些想学Jav ...
- scala语言的底层是java实现的_Scala学习笔记一(与Java、Jvm的关系以及程序执行流程分析)...
一.Scala语言与Java.Jvm的关系分析 Scala语言是马丁奥德斯基接触Java语言后,针对Java语言的特点,将函数式编程语言的特点融合到Java中,由此发明的.Scala语言和Java语言 ...
最新文章
- 新的UWP和Win32应用程序分发模型
- linux gdal安装错误,CentOS8下安装GDAL最新版|rgdal安装失败解决方案
- 【MFC】状态栏随对话框的改变而改变
- chrome扩展之3:一步步跟我学开发一个表单填写扩展
- java中JShell脚本工具、常量优化、集成开发环境IDEA
- (王道408考研操作系统)第四章文件管理-第一节1:文件管理初识
- python 重复执行任务_使用Python自动执行数字艺术家的重复任务
- matlab深度学习之LSTM预测
- TCP/UDP压力测试工具
- 普通用户添加systemctl 自定义服务的开机启动项
- 2021届西农计算机复试工作方案(学院)
- 【北亚数据恢复】zfs文件系统的服务器误删除的数据恢复
- 不平衡电网电压下虚拟同步发电机VSG控制策略-实现不平衡电压下控制三相电流平衡
- Gym101635C Macarons
- excel表显示为数字但是却无法进行数值运算
- python openpyxl操作Excel表格
- 2022年度总结 - 明月醉窗台
- iframe 接班人-微前端框架 qiankun 在中后台系统实践
- 腾讯云搭建Cpolar内网穿透
- Google应用商店如何发布app
热门文章
- java html 字符串截取字符串长度_Java截取带html标签的字符串,再把标签补全(保证页面显示效果)...
- linux mysql互为主从_mysql互为主从配置(双主模型)
- 单片机蓝牙初始化_单片机程序那些事
- 二次元老婆生成器,想要什么样的老婆就靠自己勤劳的双手啦
- 聊聊前后端分离的接口规范
- 皮一皮:夏天来了,蚊子叫了...
- 赠书:亿级流量峰值没在怕,“缓存”技术来减压!
- JetBrains放出Java代码质量检查工具Qodana,不了解一下?
- 赠书:京东当当新书榜TOP1的“算法小抄”!
- Redisson 是如何实现分布式锁的?