SSH组合工程之-struts2hibernatespring(工程下载)
java学习记录(9)
ssh工程实践之struts2&hibernate篇,ssh采用的版本分别是(struts-2.3.16.1, spring-framework-4.3.9.RELEASE, hibernate-release-5.2.10.Final)。从基础使用的角度来指示stuts2的使用。工程将从三个部分进行集成struts2, struts2和hibernate,struts2,hibernate和spring最终集成。
本篇是ssh组合工程的第三篇,在前面两篇中论述了struts2和hibernate的集成,在本篇中将新增spring的集成。
行文结构
- spring是什么
- spring jar包的作用
- 组合所需要的jar包
- 用spring来管理对象,配置文件
- 工程代码
- 代码下载
1 spring是什么
这里只是大致的理解spring的含义而不是要去具体的定义它什么,做工程在helloworld阶段只需要知道它的大概意思即可。
spring用来管理工程中对象的生成和销毁,让工程中不在出现new的字眼。让代码人员更加专注于业务的编写。
2 spring 各个jar包的含义
java中的jar包的管理是比较麻烦的,但是明白每个jar包的作用之后就不会太麻烦。
网络中关于spring jar包的作用有很多论述就不在一一列举了。
3 组合工程所需要的jar包
spring的所有jar包,并包括aspectjweaver-1.6.12.jar。
两个javassist.jar,但是并不冲突。分别用于不同的工程中。
4 用spring来管理对象
在struts2&hibernate组合工程时每次进行数据库的操作都需要获取一个session,而在spring中只需要把相应的对象注入到spring中就会由spring来进行管理。主要是理解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" xsi:schemaLocation="http://www.springframework.org/schema/beanshttp://www.springframework.org/schema/beans/spring-beans-3.0.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd"><!-- 定义数据源的信息 --><bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"destroy-method="close"><property name="driverClass"><value>com.mysql.jdbc.Driver</value></property><property name="jdbcUrl"><value>jdbc:mysql://localhost:3306/test?characterEncoding=utf8&useSSL=false</value></property><property name="user"><value>root</value></property><property name="password"><value>ziling</value></property><property name="maxPoolSize"><value>80</value></property><property name="minPoolSize"><value>1</value></property><property name="initialPoolSize"><value>1</value></property><property name="maxIdleTime"><value>20</value></property></bean><!--定义Hibernate的SessionFactory --><!-- SessionFactory使用的数据源为上面的数据源 --><!-- 指定了Hibernate的映射文件和配置信息 --><bean id="sessionFactory"class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"><property name="dataSource"><ref local="dataSource" /></property><property name="mappingResources"><list><value>com/ziling/bean/User.hbm.xml</value></list></property><property name="hibernateProperties"><props><prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop><prop key="show_sql">true</prop><prop key="hibernate.jdbc.batch_size">20</prop></props></property></bean><bean id="transactionManager"class="org.springframework.orm.hibernate5.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><tx:advice id="transactionAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:method name="get*" propagation="REQUIRED" /> <tx:method name="*" propagation="REQUIRED" /> </tx:attributes> </tx:advice><!-- aop代理设置,默认是注入接口要加上proxy-target-class="true" 通过AOP配置提供事务增强,让dao包下所有Bean的所有方法拥有事务--><aop:config proxy-target-class="true"> <aop:pointcut id="daoPointcut" expression="execution(* com.ziling.dao.*.*(..))"/> <aop:advisor advice-ref="transactionAdvice" pointcut-ref="daoPointcut" /> </aop:config><bean id="user" class="com.ziling.bean.User"></bean><!--用户注册数据访问类 --><bean id="loginDao" class="com.ziling.daoImpl.LoginDaoImpl"><property name="sessionFactory"><ref bean="sessionFactory" /></property><property name="user"><ref bean="user" /></property></bean><!--用户注册业务逻辑类 --><bean id="loginService" class="com.ziling.serviceImpl.LoginServiceImpl"><property name="loginDao"><ref bean="loginDao" /></property></bean><!-- 用户注册的Action --><bean id="loginAction" class="com.ziling.action.LoginAction"><property name="loginService"><ref bean="loginService" /></property></bean><!-- more bean definitions go here --></beans>
package com.ziling.action;import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;import com.opensymphony.xwork2.ActionSupport;
import com.ziling.serviceImpl.LoginServiceImpl;public class LoginAction extends ActionSupport{/*** */private static final long serialVersionUID = 1L;private String username;private String password;LoginServiceImpl loginService;private InputStream inputStream;public InputStream getInputStream() {return inputStream;}public void setInputStream(InputStream inputStream) {this.inputStream = inputStream;}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 void setLoginService(LoginServiceImpl loginService) {this.loginService = loginService;}@Overridepublic String execute() throws Exception {// @SuppressWarnings("resource")
// ApplicationContext context = new FileSystemXmlApplicationContext("F:/zilingJava/workSpace/SSH_Struts&Hibernate&spring/WebContent/WEB-INF/applicationContext.xml");
// loginService = (LoginServiceImpl) context.getBean("loginService");return loginService.checkUser(username, password);}public String returnString() {
// @SuppressWarnings("resource")
// ApplicationContext context = new FileSystemXmlApplicationContext("F:/zilingJava/workSpace/SSH_Struts&Hibernate&spring/WebContent/WEB-INF/applicationContext.xml");// loginService = (LoginServiceImpl) context.getBean("loginService");String userNames = loginService.getUserName();try {inputStream = new ByteArrayInputStream(userNames .getBytes("UTF-8"));} catch (UnsupportedEncodingException e) {e.printStackTrace();} return "success";}
}
5 工程代码
进行判断的类
package com.ziling.serviceImpl;import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;import com.ziling.bean.User;
import com.ziling.daoImpl.LoginDaoImpl;
import com.ziling.service.LoginService;public class LoginServiceImpl implements LoginService {LoginDaoImpl loginDao;User user;public void setLoginDao(LoginDaoImpl loginDao) {this.loginDao = loginDao;}@Overridepublic String checkUser(String username, String password) {// @SuppressWarnings("resource")
// ApplicationContext context = new FileSystemXmlApplicationContext("F:/zilingJava/workSpace/SSH_Struts&Hibernate&spring/WebContent/WEB-INF/applicationContext.xml");
// loginDao = (LoginDaoImpl) context.getBean("loginDao");user = loginDao.getUser(username);if(user.getUsername()!=null){if(password.equals(user.getPassword())){return "success";}else{return "error";}}else{return "register";}}public String getUserName() {
// ApplicationContext context = new FileSystemXmlApplicationContext("F:/zilingJava/workSpace/SSH_Struts&Hibernate&spring/WebContent/WEB-INF/applicationContext.xml");
// loginDao = (LoginDaoImpl) context.getBean("loginDao");return loginDao.getUserName();}
}
6 代码下载
代码下载
SSH组合工程之-struts2hibernatespring(工程下载)相关推荐
- Git 之 如何递归下载工程,以及递归下载中 OpenSSL SSL_read: Connection was reset, errno 10054 的报错处理
Git 之 如何递归下载工程,以及递归下载中 OpenSSL SSL_read: Connection was reset, errno 10054 的报错处理 目录 Git 之 如何递归下载工程,以 ...
- KEIL5工程不能编译和下载,运行时提示找不到.axf文件(Error: Flash Download failed - Could not load file“.axf“)
KEIL5工程不能编译和下载,运行时提示找不到.axf文件 KEIL5工程不能编译和下载,运行时提示找不到.axf文件 keil5debug运行时弹出警告 在网上找了好多办法都试过,就是不行,最终根据 ...
- ISE14.7手把手使用教程:建立工程、仿真、下载bit流、程序固化、以及一些常见的坑
最近,博主在学习FPGA,用的开发软件是ISE14.7,开发板是Spartan-3E starter board.本文主要记录下ISE14.7软件的使用,怎样从头开始建立工程,写代码,仿真,到下载bi ...
- 【Flutter】Flutter 混合开发 ( 关联 Android 工程与 Flutter 工程 | 安卓页面中嵌入 Flutter 页面 | 安卓中启动 Flutter 页面 )
文章目录 前言 一.创建 Android 项目 二.关联 Android 工程与 Flutter Module 工程 1.配置 Flutter Module工程 2.配置 build.gradle 3 ...
- flex java 开发环境搭建_Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立)
Flex+JAVA+BlazeDS开发环境配置(Java工程和Flex工程独立) 2019年12月07日 阅读数:7 这篇文章主要向大家介绍Flex+JAVA+BlazeDS开发环境配置(Java工程 ...
- idea maven 删除dependencies_使用IDEA创建Maven工程 创建javase工程
5. 使用IDEA创建Maven工程 - 创建javase工程 1.目标 能够使用IDEA创建javase的Maven工程 2.路径 创建java工程 java工程目录结构 编写Hello World ...
- 【特征工程】特征工程技术与方法
引言 在之前学习机器学习技术中,很少关注特征工程(Feature Engineering),然而,单纯学习机器学习的算法流程,可能仍然不会使用这些算法,尤其是应用到实际问题的时候,常常不知道怎么提取特 ...
- Android Studio 普通工程变成JNI工程
问题 如果现有一个Android studio工程需求改变,需要加入JNI部分:或者从github上下载了一个基础的AS工程,现在需要加入JNI部分:怎样把一个AS普通工程变成JNI工程? 解决问题 ...
- 广州电子厂房净化工程_光学微电子净化工程|光学无尘车间工程|微电子洁净室解决方案...
光学微电子净化工程亦名无尘室或清净室,目前已是半导体.精密制造.液晶制造.光学制造.线路板制造和生物化学.医药.食品制造等行业不可或缺的重要设施.近几年来,由于技术之创新发展,对于产品的高精密度化.细 ...
最新文章
- c语言在车辆工程专业中的用途,车辆工程专业培养目标与毕业要求(11页)-原创力文档...
- Web开发者用什么编辑器?
- java timezone 107_java - Java使用TimeZone - 堆栈内存溢出
- js 读取flask后台变量
- 计算机协会科创部部长职责,学生会科创部工作计划
- 严重性代码说明项目文件行 禁止显示状态错误 C4996 fopen('fscanf'、strcmp):This function or variable may be unsafe. 最全解决办法
- Socket一次Recv接受的字节有限制么?
- java和cnc_Java程序员的目标,你都达到了多少条?
- opencv 绘制坐标曲线_OpenCV手工实现灰度及RGB直方图
- 文件批量传输组件作为架包使用说明
- ios git解决冲突_适用于iOS和Linux的远程同步解决方案:Git和工作副本
- awbeci—一个帮助你快速处理日常工作的网址收集网站
- python-time、datetimme模块
- 三层交换机VLAN间路由
- 2016年第5本:必然
- VMware Workstation Pro 虚拟机启动失败 cpu虚拟化开启
- 邮件服务器lp在哪找,lp地址查询_ip地址查询定位
- echarts默认高亮省市区联动
- 短视频造假术,你值得拥有
- 短信自动转发到MySQL_联移短信中间件