SSH环境搭建(一)使用注解整合SSH

SSH 环境搭建及注解实现登录功能 DEMO SSH 环境搭建及注解实现登录功能 DEMO前言 最近通过网上的视频学习了一下 SSH 三大框架的整合应用,熟悉一下流程,视频其实三四天就可以看完了。比较基础的内容,更多的是需要自己去尝试,离开视频后一步步去操作,去实践。 环境 Eclipse 4.7.1 Windows 7 Spring 4.3.9 版本 Struts 2.5 版本 Hibernat 阅读详情

spring配置文件:applicationContext.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:aop="http://www.springframework.org/schema/aop"
    xmlns:tx="http://www.springframework.org/schema/tx"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans 
        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
        ">
   <!--      
    配置service     
   <bean id="customerService" class="com.service.impl.CustomerServiceImpl">
        <property name="customerDao" ref="customerDao"></property>
   </bean>
   配置Dao
   <bean id="customerDao" class="com.dao.impl.CustomerDaoImpl">
        <property name="hibernateTemplate" ref="hibernateTemplate"></property>
   </bean> -->
   <!-- 配置spring容器创建时要扫描的包 -->
    <context:component-scan base-package="com"></context:component-scan>
   <!-- 配置hibernateTemplate -->
   <bean id="hibernateTemplate" class="org.springframework.orm.hibernate5.HibernateTemplate">
        <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>
   <!-- spring接管sessionFactory的创建 
        用spring提供的提高sessionFactory:LocalSessionFactoryBean
        创建sessionFactory有三部分信息
            就是hibernate配置文件的信息      
   -->
   <bean id="sessionFactory" class="org.springframework.orm.hibernate5.LocalSessionFactoryBean">
        <!-- 注入hibernate配置文件 -->
        <!-- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>  -->
        <property name="dataSource" ref="dataSource"/>
        <!-- hibernate参数设置 -->
        <property name="hibernateProperties">
            <props>
                <!-- 数据库方言 -->
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
                <!-- 显示sql语句-->
                <prop key="hibernate.show_sql">true</prop>
                <!-- 格式化SQL语句 -->
                <prop key="hibernate.format_sql">true</prop>
                <!-- create:根据映射关系生成表 -->
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="current_session_context_class">org.springframework.orm.hibernate5.SpringSessionContext</prop>
            </props>
        </property>
        <!--  
            使用注解后,不再使用该种方式
        <property name="mappingLocations">
            <array>
                <value>classpath:com/entity/*.hbm.xml</value>
            </array>
         </property> -->
         <!-- 使用注解后,用该方式指定实体类的包 -->
         <property name="packagesToScan">
            <array>
                <value>com.entity</value>
            </array>
         </property>
   </bean>
    <!-- 数据源,与数据库连接 -->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <!-- 数据库驱动 -->
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <!-- 数据库连接地址 -->
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/ssh?characterEncoding=utf8"/>
        <!-- 用户名 -->
        <property name="user" value="root"/>
        <!-- 密码 -->
        <property name="password" value="123456"/>
        <!-- 最小连接数 -->
        <property name="minPoolSize" value="3"/>
        <!-- 最大连接数 -->
        <property name="maxPoolSize" value="10"/>
        <!-- 初始化连接数 -->
        <property name="initialPoolSize" value="5"/>
    </bean>


   <!-- 配置事务管理器 -->
   <bean id="transactionManager" class="org.springframework.orm.hibernate5.HibernateTransactionManager">
        <property name="sessionFactory" ref="sessionFactory"></property>
   </bean>

   <!-- 开启spring对注解事务的支持 -->
   <tx:annotation-driven transaction-manager="transactionManager"/>
   <!-- 
   配置事务的通知
   <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="*" propagation="REQUIRED" read-only="false"/>
            <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
        </tx:attributes>
   </tx:advice>
   配置AOP
   <aop:config>
        配置切入点表达式
        <aop:pointcut expression="execution(* com.service.impl.*.*(..))" id="pt1"/>
        建立切入点表达式和事务通知的关联
        <aop:advisor advice-ref="txAdvice" pointcut-ref="pt1"/>
   </aop:config> -->
</beans>

业务层实现类:CustomerServiceImpl

/*
 * 业务层实现类
 */
@Service("CustomerService")
@Transactional(readOnly=false,propagation=Propagation.REQUIRED)
public class CustomerServiceImpl implements CustomerService {
    @Resource(name="customerDao")
    CustomerDao customerDao;

    @Override
    @Transactional(readOnly=false,propagation=Propagation.SUPPORTS)
    public List<Customer> findAll() {
    customerDao.findAll();
    return null;
    }

    @Override
    public void save(Customer customer) {
    customerDao.save(customer);
    }

    public void setCustomerDao(CustomerDao customerDao) {
        this.customerDao = customerDao;
    }

}

持久层实现类:CustomerDaoImpl

@Repository("customerDao")
public class CustomerDaoImpl implements CustomerDao {
    //spring提供的类似于session的对象
    @Resource(name="hibernateTemplate")
    private HibernateTemplate hibernateTemplate;

    @Override
    public List<Customer> findAll() {

    return (List<Customer>) hibernateTemplate.find("from Customer");
    }

    @Override
    public void save(Customer customer) {
    hibernateTemplate.save(customer);
    }  

}

实体类:Customer

@Entity
@Table(name="Customer")
public class Customer {
    @Id
    @Column(name="custId")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private int custId;
    @Column(name="custName")
    private String custName; 
    @Column(name="custSource")
    private String custSource;
    @Column(name="custIndustry")
    private String custIndustry;  
    @Column(name="custLevel")
    private String custLevel;  
    @Column(name="custAddress")
    private String custAddress;  
    @Column(name="custPhone")
    private String custPhone;
    public String getCustName() {
        return custName;
    }
    public void setCustName(String custName) {
        this.custName = custName;
    }
    public String getCustSource() {
        return custSource;
    }
    public void setCustSource(String custSource) {
        this.custSource = custSource;
    }
    public String getCustIndustry() {
        return custIndustry;
    }
    public void setCustIndustry(String custIndustry) {
        this.custIndustry = custIndustry;
    }
    public String getCustLevel() {
        return custLevel;
    }
    public void setCustLevel(String custLevel) {
        this.custLevel = custLevel;
    }
    public String getCustAddress() {
        return custAddress;
    }
    public void setCustAddress(String custAddress) {
        this.custAddress = custAddress;
    }
    public String getCustPhone() {
        return custPhone;
    }
    public void setCustPhone(String custPhone) {
        this.custPhone = custPhone;
    }
    @Override
    public String toString() {
    return "Customer [custid=" + custId + ", custName=" + custName
        + ", custSource=" + custSource + ", custIndustry="
        + custIndustry + ", custLevel=" + custLevel + ", custAddress="
        + custAddress + ", custPhone=" + custPhone + "]";
    }
    public int getCustId() {
        return custId;
    }
    public void setCustId(int custId) {
        this.custId = custId;
    }

}
SSH框架整合实践:全注解配置方式 SSH框架是指Spring、Struts2和Hibernate这三个主流Java开发框架的整合。Spring主要负责业务逻辑层的事务管理与依赖注入;Struts2作为表现层框架,主要处理用户请求;Hibernate则作为数据持久层框架,进行数据库操作。此整合模式起源于Java EE开发的历史,因其强大的功能组合,一度成为企业级应用开发的首选方案。在Struts2中,@Action注解是最为核心的注解之一。它用于标记一个方法或类作为Struts2的Action。 阅读详情

相关推荐

SSH注解整合与所需jar包清单

SSH框架,即Struts2 + Spring + Hibernate的集成框架,是企业级Java应用开发中广泛采用的解决方案。它结合了三个框架的优势:Struts2的Web层处理能力、Spring的企业级服务管理、Hibernate的ORM数据持久化技术,为开发复杂的业务系统提供了一个高效、稳定且可维护的平台。

weixin_35871529的博客 661

SSH的一些注解整理

一,hibernate annotation Class注解: 1.@Entity:表明当前类是一个持久化类 2.@Table(name="team",catalog="NBA"):映射一个表team,所对应的数据库是NBA,可以省略 字段属性注解: 1.@GenericGenerator(name = "generato

worn_xiao的博客 648

SSH整合与Hibernate注解实战指导

Struts框架是Apache软件基金会的一个项目,是一个基于MVC设计模式的Web应用框架。在SSH(Struts+Spring+Hibernate)框架组合中,Struts作为表现层(View)的主要组成部分,负责接收用户请求并将响应返回给客户端。Struts通过XML配置文件和JavaBean组件来处理Web应用中的业务逻辑,简化了基于Java的Web应用开发。Struts的核心是ActionServlet,它作为整个Struts框架的控制器,负责调用应用的业务逻辑组件。

weixin_30248619的博客 990

SSH框架搭建之使用注解实现SSH集成

如果同时使用了@Entity(name="student")和@Table(name="book"),最终对应的表名是book,这说明优先级:@Table>@Entity。@Table注解是一个非必须的注解,@Table注解指定了Entity所要映射的数据库表,其中@Table.name()用来指定映射表的表名。3、配置Spring配置文件,注释掉bean注入到Spring容器的配置(含dao注入到service中的配置)prototype:多实例的(多例)——每次获取Bean的时候会有一个新的实例。

weixin_46741943的博客 563

鸿蒙OpenHarmony南向开发 轻量系统芯片移植指南(一)

OpenHarmony系统采用"系统>子系统>部件"层级架构,支持功能模块化裁剪。本文介绍了关键子系统及移植方法:1)启动恢复子系统负责内核到应用间的进程初始化,需配置启动入口标识及链接脚本;2)文件子系统提供基础文件操作接口,需适配HAL层文件读写功能,可通过Flash模拟、轻量文件系统或厂商自有方案实现。移植过程需修改config.json配置,添加对应组件定义及功能实现。系统采用模块化设计,开发者可根据实际需求灵活配置所需子系统功能。

yx525623的博客 1134

从流量到凭证:实战解析SMB协议中的NTLMv2/v1哈希提取与破解

本文详细解析了SMB协议中NTLMv2/v1哈希的提取与破解实战技巧。从流量捕获、哈希格式处理到Hashcat高效破解,提供了一套完整的操作指南。文章特别强调了NTLMv2和NTLMv1哈希的区别及处理要点,并分享了防护建议与检测方法,帮助安全人员提升渗透测试效率。

weixin_30642561的博客 118

javaEE SSH框架不使用注解的方式与使用注解的方式

一:不使用注解的方式 验证一个登陆是否合法,采用动态方法调用的方式 1、mlogin对应struts.xml中的一个action的name,class随意起个名字,这里为loginAction; 2、然后对应到applicationContext.xml中的一个bean,bean的id与loginAction名字一直,指出对应的处理类,这      里是com.hhit.action下的Lo

莫失莫忘的博客 4955

Code Ocean 上传代码 手把手教程

对于一些学术期刊,录用前会让把代码上传到Code Ocean上,但上传过程可能会遇到一些问题,小编分享一下自己的上传经验。他们会进行验证,验证通过,将自动发布。点此运行即可,但是运行比较慢。

u014071947的博客 1万+

SSH中的注解式整合

前言 因为接触配置文件比较多,所以对于我来说更喜欢配置文件,把需要配置的内容全部整到一个文件中,对于注解就显得很陌生。《Java注解基本知识》 Annotation(注解)就是Java提供了一种元程序中的元素关联任何信息和着任何元数据(metadata)的途径和方法。Annotion(注解)是一个接口,程序可以通过反射来获取指定程序元素的Annotion对象,然后通过Ann

令狐姑娘 4349

顶级的FDE需要拥有哪些技能?

上一篇《》说明白了什么是FDE。这一篇回答下一个问题:要成为顶级 FDE,需要哪些具体的技能?要想弄清楚FDE应该有哪些能力,就得先搞清楚FDE要完成哪些工作。同时,有一点是我们要密切关注的:现在是大模型时代,所以我们不能脱离大模型讨论FDE的能力。我们可以把FDE在客户现场需要完成的工作分为四类:破冰与诊断、价值交付、项目与预期管理、沟通与影响。另有两项元能力贯穿始终。以下按工作类别逐一拆解,每项能力配 1 / 3 / 5 分标准,方便对照自评。文末有完整打分工具链接。

mydeman的学习日志 262

VS2022如何兼容老项目?.NET Framework 4.0/4.5安装避坑指南

本文提供了在Visual Studio 2022中兼容和维护.NET Framework 4.0/4.5等老旧项目的完整解决方案。针对VS2022无法直接识别旧框架的核心问题,文章详细剖析了原因,并重点推荐通过官方NuGet包安全获取引用程序集的方法,给出了从下载、解压到部署至标准目录的详细步骤。同时,文章还深入探讨了项目文件格式过旧、NuGet包还原失败等进阶问题的排查与解决策略,旨在帮助开发者高效、稳定地在现代开发环境中维护历史代码库。

weixin_27734811的博客 516

SSH使用注解开发

在一个稍大的项目中,通常会有上百个组件,如果这些组件采用xml的bean定义来配置,显然会增加配置文件的体积,查找以及维护起来也不太方便。个人也不喜欢配置那么多的xml文件。下面我们就利用java的注解实现ssh框架,注解相当于一种标记加了注解就等于打上了某种标记,没加,则等于没有某种标记,以后,javac编译器,开发工具包和其他程序可以用反射来了解你的类以及各种元素上有何种标记,看你有什么标记,...

qq_41009846的博客 544

一篇把 Transport 做到可复制的实战指南:从 CTS 底层表到 LSMW、Variant、Layout、TABU、Query、SAPscript 全对象搬运

本文深入解析SAP系统中的Transport机制,将其视为可审计、可追溯的变更流水线。文章从CTS/Transport Organizer通用方法论和具体对象搬运手法两个层面展开,详细介绍了LSMW项目、程序Variant、屏幕/ALV Layout、表数据、ABAP Query、SAPscript和SO10标准文本等对象的传输策略。通过真实案例说明,代码对象往往能被正确传输,但"运行体验"和"业务配置"却常被遗漏,导致QAS测试正常而PRD环境异常。文章提供了一套可

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 178

######crm01_最快速:搭建纯注解ssh整合环境(只用一个Spring配置)素材提供jar包,只有两步工作:①写Spring配置②写ssh注解+简单逻辑=遇到action创建失败问题

最快速:搭建纯注解ssh整合环境(只用一个Spring配置文件.使用素材),只有两步工作:①写Spring配置②写ssh注解+简单逻辑 ===出现bug。【注解不难,请在足够自信:代码和注解没问题前提下】,一定是Spring配置错了!!! 我的bug: 问题原因: ===【还是包名路径扫描的问题】。报名写错了。 ===图省事,复制的配置信息。 ===【经验:复制

anyway, life must全力以赴 388

Lammps不同亲疏水性粗糙表面的润湿行为模拟(包含in文件)

Lammps粗糙表面的润湿行为模拟(包含in文件)前言—润湿行为模拟一、物理模型构建二、具体in文件—in文件内循环亲疏水性三、具体in文件—分子模板构建初始模型以及平衡态模拟四、全部代码(基地粗糙表面只提供data文件) 前言—润湿行为模拟 润湿现象:当液体与固体接触时,液体的附着层将沿固体表面延伸。当接触角 θ\rm \thetaθ 为锐角时,液体润湿固体,若θ为零时,液体将展延到全部固体表面上。润湿现象的产生与液体和固体的性质有关。(来自百度百科) 润湿行为的本质是固液之间的相互作用,也就是分子间的范

Rockyoung 7094

DeepLens是一个用于计算镜头设计的可微光线追踪器

若安装过程中遇到网络问题导致安装失败,可尝试更换pip源,例如使用国内的镜像源,修改pip配置文件(Windows系统在。

max500600的博客 1143

SSH框架注解版整合搭建图文教程

文章转载自:https://www.jiweichengzhu.com/article/68df4c127c2a491bb6f7056e970318d5 如果还有问题,加群交流:686430774 案例代码下载,请移步原文链接! SSH框架用起来还是可以的,但配置也蛮多,struts一堆配置,hibernate一堆配置,spring更不用说也是一堆配置,还好各个框架的设计团队都意识到了这...

songfei_dream的专栏 2278

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SSH全注解框架整合

SSH全注解框架整合 原创地址 https://blog.youkuaiyun.com/duoluo9/article/details/78062797 1、ssh框架开发的应用层级结构 j2ee应用可以分为3层: 1、表示层2、业务逻辑层3、数据服务层ssh将应用分层更加细化(ssh将业务逻辑层划分了4层): 1、action层(控制层mvc中的c层)2、service层 &nbsp;(业务层mvc中的m层...

Alone5256的博客 332

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

【SSH】SSH框架整合开发环境的搭建

本文中总结使用SSH框架开发前的环境搭建的主要步骤。 在这里搭建的是Struts2+Spring4+Hibernate5的环境,对于新版本的整合其实也大同小异。 首先回顾一下SSH框架涉及各层的大致实现: 接下来进行环境的搭建: 无障碍整合 1.创建Web项目,导入jar包 Struts2 struts-2.3.24\apps\struts2-blank\WEB-INF\...

weixin_40423032的博客 406

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

SSH整合(纯注解)

搭建SSH注解开发的环境 创建web项目,引入jar包 SSH整合的jar包 Struts2的注解开发包 struts2-convention-plugin-2.3.24.jar ------Struts2的注解开发包 引入配置文件 web.xml Struts2的过滤器 Spring的监听器 jdbc.prop...

HYN205的博客 468

myeclipse下SSH整合环境搭建

myeclipse下SSH整合会简单得多,直接贴图分享给小伙伴们吧。 1. 在myeclipse里新建一个Web Project项目,如项目afy_Jujiu_shop; 2. 先添加Struts2框架。 单击完成后,会在项目src目录下多出Struts.xml文件。 同时WEB-INF目录下的web.xml文件里会自动添加Struts2核心过滤器的配置。 3.

泥陶匠 3136

SSH框架整合环境配置,非注解式

SSH整合环境搭建(非注解式) 前言,ssh框架虽然不是当前市面上主流框架,但是还是有很多值得我们去学习和研究的地方 所需工具: MyEclipse 2014 SQL server 2008 tomcat8.0 SSH SSH框架就是:Struts2 + spring+ hibernate 在整合时需要按照以下几步来完成 下载SSH所需要的jar文件 ps:没有jar文件的同学,可以翻到文章...

qq_43082330的博客 231

SSH整合方式3——纯注解

目录 1. 引入jar包 2. 引入配置文件 2.1 web.xml 2.2 jdbc.properties 2.3 log4j.properties 2.4 applicationContext.xml 3. 配置Action 3.1 在spring中配置action,将action交给spring管理 3.2 配置Action的访问 3.2.1 在action类上再添加访问...

武汉小喽啰 712

SSH项目整合(基于注解)

SSH项目整合 本人目前在二线城市从事java开发工作,目前已经有两年的工作经验。相对于北上广深等一线城市,不得不承认还是有很大的差距的。软件行业大多数还是以传统管理项目为主,更多是以业务为核心的。工作两年除了工作相关的业务更熟练了之外,在技术上似乎还没有多么明显的进步。甚至于很多用不到的知识都已经开始遗忘了。所以想要有一个持续的进步,除了工作之外还是需要利用一下课余时间的。(虽然大多数时间都在刷...

qq_36730030的博客 366

ssh框架整合完整实例

前排提示博文较长1.SSH框架结构 action,biz,dao之间的依赖关系由spring维护,动态注入 sping以AOP(面向切面的方式)实现了事务管理器。 spring整合Hibernate时,spring替代实现HibernateSessionFacctory和dao spring整合struts时,代替实现Action 开发过程中的所有对象由spring控制管理 2. 项目流程2.1框架

shinerio的博客 2万+
上一篇: SSH环境搭建(一)整合SSH配置文件
下一篇: maven入门(一) 什么是maven
QEcode
博客等级 码龄10年 39粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值