`

Struts2+Spring+Hibernate搭建全解!

阅读更多

Struts2+Spring+Hibernate是J2EE的最新流行框架。本篇是我搭建这个框架的经验总结,有很多人搭建这个框架总会遇到

大大小小的问题,网上也没有什么行之有效的方案或成体系的介绍,所以我就决定总结一下我的搭建过程。给一些搭

建尚存问题的朋友提供帮助。

我用这个框架,实现的是基本的CRUD功能的一个雇员管理系统,本来打算丰富一下功能,但是一直没能抽出空去搞。

目前版本暂定为1.0,除了CRUD外还配置了表单验证框架JSValidation。功能都能很顺利的实现。

现在分享部分源码,来说明一些注意事项。

以下是部分搭建过程及源码:

1.先组合实现Hibernate3.2+Spring2.5支持,删除hibernate.cfg.xml文件,修改applicationContext.xml文件的内容,增加SessionFactory和dataSource的设置。

2.通过MyEclipse的向导方式,生成POJO类和对应的映射文件。

3.修改applicationContext.xml文件中<property name="mappingResources">元素的内容。

4.编写DAO接口和实现类。

5.修改applicationContext.xml文件,增加对Dao实现类的配置。

6.组合Struts2和Spring2.5,修改web.xml文件,增加struts2的所需要的过滤器配置。

7.增加struts2相应类库,增加struts2与spring的配置jar包。

8.拷贝struts.xml文件到src根目录下,再修改struts.xml文件,进行常量配置。

9.修改web.xml文件,配置Spring监听器,和上下文变量。并增加OpenSessionInViewFilter的设置。

10.写入action类。

11.配置struts.xml文件。

12.修改applicationContext.xml

13.编写Jsp文件。

14.加载运行项目。

下面是关键文件的源码:

struts.xml源码:

<!----><?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC 
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
    "http://struts.apache.org/dtds/struts-2.0.dtd"
>
<struts>
<!-- struts2委托spring管理 -->
    
<constant name="struts.objectFactory" value="spring"/>
    
<!-- /crm/emp/add.action -->
    
<package name="crm_employee" extends="struts-default" namespace="/emp">
        
<action name="add" class="addBean" method="add">
            
<result>add.action</result>
            
<result>/emp/add_suc.jsp</result>
        
</action>
        
<action name="list" class="listBean" method="list">
            
<result>/emp/list.jsp</result>
        
</action>
        
<action name="delete" class="deleteBean" method="delete">
            
<result>delete.action</result>
            
<result>/emp/delete_suc.jsp</result>
        
</action>
        
<action name="update" class="updateBean" method="update">
            
<result>update.action</result>
            
<result>/emp/edit_suc.jsp</result>
        
</action>
        
<action name="edit" class="editBean" method="edit">
            
<result>/emp/edit.jsp</result>
        
</action>
        
<!-- Add actions here -->
    
</package>
</struts>

 

web.xml源码:

<!----><?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
    xmlns:xsi
="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation
="http://java.sun.com/xml/ns/javaee 
    http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
>
    
<!-- 配置spring的监听器 -->
    
<context-param>
        
<param-name>contextConfigLocation</param-name>
        
<param-value>/WEB-INF/applicationContext*.xml</param-value>
    
</context-param>
    
<!-- 开启监听 -->
    
<listener>
        
<listener-class>
            org.springframework.web.context.ContextLoaderListener
        
</listener-class>
    
</listener>
    
<!-- 配置OpenSessionInViewFilter,必须在struts2监听之前 -->
    
<filter>
        
<filter-name>lazyLoadingFilter</filter-name>
        
<filter-class>
            org.springframework.orm.hibernate3.support.OpenSessionInViewFilter
        
</filter-class>
    
</filter>
    
<!-- 设置监听加载上下文 -->
    
<filter>
        
<filter-name>struts2</filter-name>
        
<filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher
        
</filter-class>
    
</filter>
    
<filter-mapping>
    
<filter-name>lazyLoadingFilter</filter-name>
    
<url-pattern>*.action</url-pattern>
    
</filter-mapping>
    
<filter-mapping>
        
<filter-name>struts2</filter-name>
        
<url-pattern>/*</url-pattern>
    
</filter-mapping>
    
<welcome-file-list>
    
<welcome-file>index.jsp</welcome-file>
    
</welcome-file-list>
</web-app>


applicationContext.xml源码:

<!----><?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:aop
="http://www.springframework.org/schema/aop"
    xmlns:tx
="http://www.springframework.org/schema/tx"
    xsi:schemaLocation
="
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"
>
    
<!-- 配置Hibernate支持 -->
    
<bean id="dataSource"
        class
="org.apache.commons.dbcp.BasicDataSource">
        
<property name="driverClassName"
            value
="com.mysql.jdbc.Driver">
        
</property>
        
<property name="url"
            value
="jdbc:mysql://localhost:3306/tables">
        
</property>
        
<property name="username" value="root"></property>
        
<property name="password" value="hicc"></property>
    
</bean>
    
<bean id="sessionFactory"
        class
="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
        
<property name="dataSource">
            
<ref bean="dataSource" />
        
</property>
        
<property name="hibernateProperties">
            
<props>
                
<prop key="hibernate.dialect">
                    org.hibernate.dialect.MySQLDialect
                
</prop>
                
<prop key="hibernate.show_sql">true</prop>
            
</props>
        
</property>
        
<property name="mappingResources">
            
<list>
                
<value>com/sy/crm/model/Employee.hbm.xml</value>
            
</list>
        
</property>
    
</bean>
    
<bean id="employeeDao"
        class
="com.sy.crm.dao.hibernate.EmployeeDaoHibernate">
        
<property name="sessionFactory">
            
<ref bean="sessionFactory" />
        
</property>
    
</bean>
    
<bean id="employeeManager"
        class
="com.sy.crm.service.impl.EmployeeManagerImpl">
        
<property name="employeeDao">
            
<ref bean="employeeDao" />
        
</property>
    
</bean>
    
    
<bean id="addBean" class="com.sy.crm.action.EmployeeAction" scope="prototype">
        
<property name="employeeManager">
            
<ref bean="employeeManager" />
        
</property>
    
</bean>
    
<bean id="listBean" class="com.sy.crm.action.EmployeeAction" scope="prototype">
        
<property name="employeeManager">
            
<ref bean="employeeManager" />
        
</property>
    
</bean>
    
<bean id="deleteBean" class="com.sy.crm.action.EmployeeAction" scope="prototype">
        
<property name="employeeManager">
            
<ref bean="employeeManager" />
        
</property>
    
</bean>
    
<bean id="updateBean" class="com.sy.crm.action.EmployeeAction" scope="prototype">
        
<property name="employeeManager">
            
<ref bean="employeeManager" />
        
</property>
    
</bean>
    
<bean id="editBean" class="com.sy.crm.action.EmployeeAction" scope="prototype">
        
<property name="employeeManager">
            
<ref bean="employeeManager" />
        
</property>
    
</bean>
    
<!-- 事务管理器 -->
    
<bean id="transactionManager" 
    class
="org.springframework.orm.hibernate3.HibernateTransactionManager">
    
<property name="sessionFactory">
    
<ref local="sessionFactory"/>
    
</property>
    
</bean>
    
<!-- 配置事务特性,配置add,delete,update开始的方法,事务传播特性为required -->
    
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    
<tx:attributes>
    
<tx:method name="add*" propagation="REQUIRED"/>
    
<tx:method name="delete*" propagation="REQUIRED"/>
    
<tx:method name="update*" propagation="REQUIRED"/>
    
<tx:method name="*" read-only="true"/>
    
</tx:attributes>
    
</tx:advice>
    
<!-- 配置那些类的方法进行事务管理,当前com.sy.crm.service包中的子包,
    类中所有方法需要,还需要参考tx:advice的设置 
-->
    
<aop:config>
    
<aop:pointcut id="allManagerMethod" expression="execution(*
    com.sy.crm.service.*.*(..))"
/>
    
<aop:advisor advice-ref="txAdvice" pointcut-ref="allManagerMethod"/>
    
</aop:config>
    
</beans>
 
add.jsp源码:
<!----><%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  
<head>
    
<title>add page</title>
    
<script language="JavaScript" src="validation-framework.js"></script>
    
<meta http-equiv="pragma" content="no-cache">
    
<meta http-equiv="cache-control" content="no-cache">
    
<meta http-equiv="expires" content="0">    
    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    
<meta http-equiv="description" content="This is my page">

  
</head>
  
<body>
  
<center>
   
<h3>雇员注册:</h3><br>
   
<h4><a href="../emp/list.action">查看所有雇员</a></h4>
   
<div id="error" style="color:blue; font-weight:bold;"></div>
   
<s:form action="add" method="post" onsubmit="return doValidate('form')" name="form" id="form">
   
<s:textfield name="employee.name" label="姓名" id="name"/>
   
<s:textfield name="employee.address" label="地址"/>
   
<s:textfield name="employee.phone" label="电话"/>
   
<s:submit value="员工注册"/>
   
</s:form>
   
</center>
  
</body>
</html>

list.jsp源码:

 

<!----><%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib uri="/struts-tags" prefix="s"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    
<head>
        
<title>list employee page</title>

        
<meta http-equiv="pragma" content="no-cache">
 
分享到:
评论
3 楼 gghui_168 2010-05-19  
joeyhacker 写道
兄弟,有源码没?

2 楼 shiyangxt 2008-12-15  
joeyhacker 写道

兄弟,有源码没?

我自己写的,当然有了。
1 楼 joeyhacker 2008-12-15  
兄弟,有源码没?

相关推荐

    Struts2+Spring+Hibernate搭建全解

    ### Struts2+Spring+Hibernate框架搭建全解 在Java Web开发领域,Struts2、Spring与Hibernate(通常被简称为SSH)组合成一个非常流行的轻量级开发框架。这三者结合能够很好地解决Web应用中的业务逻辑处理、数据持久...

    newss2newss2newss2

    【标题】"Struts2+Spring+Hibernate搭建全解!" 【描述】在现代Web开发中,企业级应用经常采用MVC(Model-View-Controller)架构模式来组织代码,提高可维护性和可扩展性。Struts2、Spring和Hibernate是Java Web...

    SSH框架搭建全解

    ### SSH框架搭建全解 SSH框架,即Struts+Spring+Hibernate框架的组合,是Java Web开发中的一个经典且流行的组合。本文将详细介绍如何搭建这一框架,并通过具体步骤和示例代码来帮助初学者理解整个过程。 #### 一、...

    即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点.zip

    即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点

    STM32伺服步进定位精准控制:相对与绝对定位的回原点策略及梯形加减速算法深度解析

    内容概要:本文详细介绍了如何使用STM32实现步进电机的精确运动控制,涵盖梯形加减速算法、绝对定位、相对定位和回原点功能。文章首先解释了绝对定位和相对定位的区别及其应用场景,接着深入探讨了梯形加减速算法的具体实现方法,包括动态选择梯形或三角形速度曲线以适应不同的运动距离。文中还提供了详细的回原点逻辑,确保电机能够安全可靠地返回起始位置。此外,文章讨论了运动控制状态机的设计,强调了定时器中断和服务函数的作用,以及如何通过DMA提高系统的稳定性和效率。最后,作者分享了一些实用的经验和注意事项,如定时器配置、加减速参数设置和硬件接口设计。 适合人群:对嵌入式系统和运动控制感兴趣的开发者,尤其是有一定STM32编程基础的技术人员。 使用场景及目标:适用于需要高精度步进电机控制的应用场合,如工业自动化设备、机器人等领域。主要目标是帮助读者掌握STM32在步进电机控制方面的核心技术,包括但不限于梯形加减速、定位控制和回原点等功能。 其他说明:文章不仅提供了理论讲解,还附有大量实际代码片段,便于读者理解和实践。同时,作者分享了许多实战经验和常见问题的解决方案,有助于读者避开潜在的陷阱并提高项目的成功率。

    西门子PLC 1200 PID程序与变频器通讯详解:Modbus RTU报文讲解,带触摸屏,手动自动功能及CAD电气详细注释

    内容概要:本文深入探讨了西门子PLC 1200与G120变频器通过Modbus RTU通讯的实现方法,涵盖硬件连接、软件配置、变频器参数设置、PID自写FB块及其手动自动切换功能、触摸屏交互设计以及CAD电气的应用。具体介绍了Modbus RTU通讯的初始化配置、报文格式、PID控制算法的手动自动无扰切换、触摸屏参数映射和动态站号切换等功能。同时提供了详细的代码示例和调试建议,强调了参数设置、实数转换、PID抗饱和等注意事项。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉西门子产品并有一定PLC编程基础的人群。 使用场景及目标:适用于需要构建基于西门子PLC 1200和G120变频器的自动化控制系统的企业和个人开发者。主要目标是掌握Modbus RTU通讯协议的具体实现细节,理解PID控制算法的工作原理,并能够独立完成系统的集成和调试。 其他说明:文中不仅提供了理论知识,还包括大量实战经验和常见问题的解决方案,有助于提高读者的实际操作能力。此外,还涉及了CAD电气图纸的绘制,为项目的整体规划和后续维护提供了指导。

    **煤层瓦斯开采技术新突破:采用二阶PDE方程描述压力变化**

    内容概要:本文详细介绍了COMSOL利用二阶偏微分方程(PDE)进行煤层气开采过程中压力场模拟的方法及其显著优势。传统方法通常采用达西定律简化为一阶方程,而COMSOL则通过自定义二阶PDE,将渗透率作为动态参数,并引入非线性的解吸过程和复杂的边界条件,从而更精确地模拟了煤层内的压力变化。文中展示了具体的MATLAB代码片段,解释了如何配置模型以及处理边界条件,强调了二阶PDE在捕捉压力场细节方面的优越性能。此外,文章还提到了一些实际案例,如瓦斯涌出量预测精度提高37.6%,裂隙区压力衰减速度误差控制在8%以内等。 适合人群:从事煤层气开采研究的专业人士、数值模拟工程师、地质力学专家。 使用场景及目标:适用于需要高精度模拟煤层气开采过程中复杂压力场变化的研究项目,旨在提升预测准确性,优化开采方案,减少事故风险。 其他说明:尽管二阶PDE提供了更高的精度,但也增加了模型复杂性和计算成本。因此,在具体应用时需权衡精度与效率之间的关系。同时,良好的网格划分对于获得稳定可靠的解决方案至关重要。

    可再生能源_光伏发电_物联网大数据云计算_SpringBoot_Vue_ElementUI_Redis_Jwt_XXLJob_Netty_时序数据库_关系型数据库_智能监测_数据采.zip

    可再生能源_光伏发电_物联网大数据云计算_SpringBoot_Vue_ElementUI_Redis_Jwt_XXLJob_Netty_时序数据库_关系型数据库_智能监测_数据采

    thymeleaf-2.0.9.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

    31 android 加载时闪烁点样式的启动画面

    31 android 加载时闪烁点样式的启动画面

    GDF103C8T6的PCB制版文件

    GDF103C8T6的PCB制版文件

    基于MATLAB的裂缝检测系统:实现图像预处理与特征提取

    内容概要:本文详细介绍了如何使用MATLAB构建一个自动化的裂缝检测系统。首先进行图像预处理,包括直方图均衡化、中值滤波去除噪声以及对比度增强。接着通过自适应二值化将图像转换为黑白图像,并采用形态学处理和边缘检测进一步优化图像质量。最后,利用regionprops函数提取裂缝的几何特征,如面积、长轴和短轴长度等,从而实现裂缝的自动检测和分类。文中强调了每个步骤的关键技术和参数选择,并提供了具体的MATLAB代码示例。 适合人群:从事图像处理、计算机视觉领域的研究人员和技术人员,尤其是对裂缝检测感兴趣的工程师。 使用场景及目标:适用于建筑、道路等基础设施的维护检查,能够快速准确地检测并评估裂缝情况,提高工作效率和准确性。 其他说明:作者分享了许多实践经验,指出了一些常见的陷阱和注意事项,帮助读者更好地理解和应用这些技术。同时,文中提到该系统的识别率可达89%,并且可以根据不同应用场景调整参数以满足特定需求。

    ALO-KELM回归预测MATLAB代码(电厂运行数据为例)

    内容概要:本文详细介绍了如何利用蚁狮优化算法(ALO)和核极限学习机(KELM)在MATLAB环境下进行电厂运行数据的回归预测。首先,文章解释了ALO算法的工作原理,它通过模拟蚁狮捕猎行为来优化KELM的超参数,从而提高预测准确性。接着,阐述了数据预处理步骤,包括从Excel文件读取数据、归一化处理以及特征选择。然后,深入探讨了KELM的核函数选择和训练过程,并提供了具体的MATLAB代码片段用于实现整个流程。最后,展示了该方法在实际案例中的表现,特别是在某330MW机组上的应用,证明了其优越性。 适合人群:具有一定MATLAB编程基础并对机器学习感兴趣的工程师和技术人员。 使用场景及目标:适用于电力行业或其他涉及复杂非线性系统的领域,旨在解决多参数耦合强的问题,提供高效准确的预测解决方案。 其他说明:文中提到的一些技巧如数据清洗、参数调整等对于获得更好的预测效果至关重要。此外,作者还分享了一些实用的经验教训,帮助读者避开常见错误并优化模型性能。

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失.zip

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失

    码垛机械手组态设计与4x4码垛机器人组态

    内容概要:本文深入探讨了4x4码垛机械手的组态设计,涵盖从基础的坐标系转换、路径规划到高级的异常处理等多个方面。首先介绍了关键坐标系转换,确保机械手能够精确地定位物料。接着详细讲解了路径规划,尤其是贝塞尔曲线的应用,使机械臂可以平滑移动并避开障碍物。此外,还讨论了夹爪控制、动态压力调整以及状态保存机制等重要环节。文中强调了调试过程中的注意事项,如坐标系校准、伺服电机反向间隙补偿等,并提供了具体的代码示例。最后指出,成功的组态设计不仅需要扎实的编程技能,还需要对机械结构有深刻的理解。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是对码垛机械手感兴趣的研发人员。 使用场景及目标:适用于希望深入了解码垛机械手工作原理及其组态设计的人群。主要目标是帮助读者掌握4x4码垛机械手的设计要点,提高实际项目中的开发效率和成功率。 其他说明:文章通过大量实例和代码片段展示了各个知识点的实际应用场景,有助于读者更好地理解和吸收相关概念。同时提醒读者在进行组态设计时要考虑多种因素的影响,如物理特性和机械结构等。

    Carsim+Simulink联合仿真实现带规划轨迹可视化的变道控制算法:路径规划与MPC轨迹跟踪

    内容概要:本文详细介绍了如何利用 Carsim 和 Simulink 实现弯道场景下的车辆变道仿真。首先,通过路径规划算法生成符合车辆动力学特性的期望路径,接着采用 MPC(模型预测控制)算法确保车辆能够精确跟踪这条路径。文中不仅展示了具体的数学模型和 MATLAB/Simulink 代码片段,还讨论了联合仿真的配置要点和常见问题解决方案。最终,通过可视化工具展示规划路径与实际行驶路径的对比,帮助研究人员更好地分析和验证仿真结果。 适合人群:从事自动驾驶、智能交通系统研究的技术人员,尤其是对车辆控制算法感兴趣的工程师。 使用场景及目标:适用于需要进行车辆变道仿真测试的研究机构或企业,旨在提升车辆在复杂路况下的自主驾驶能力。具体目标包括:①掌握路径规划算法的设计与实现;②理解MPC在轨迹跟踪中的应用;③熟悉 Carsim 和 Simulink 的联合仿真环境配置。 其他说明:文章提供了丰富的代码示例和技术细节,有助于读者深入理解每一步骤的具体实现方式。此外,作者还分享了一些实践经验,如参数调优技巧和常见的仿真陷阱规避方法。

    蓝白软件库2.0源码iapp源码+优化修复版

    在原来的版本增加论坛聊天等功能,修复软件区显示问题,优化部分功能。

    永磁同步电机三矢量模型预测转距控制仿真研究:高效波形效果与定子电流谐波优化,模型搭建与模块推广应用的实践探索

    内容概要:本文详细介绍了永磁同步电机(PMSM)三矢量模型预测转矩控制的Matlab仿真方法。首先解释了为何降低转矩脉动和定子电流谐波对于提高电机性能至关重要。接着,文章逐步解析了坐标变换、预测模型和优化算法等关键模块的具体实现方式,展示了如何通过三矢量控制策略显著改善电机性能。文中还讨论了一些实用的技术细节,如矢量选择、时间分配以及代价函数设计,并通过仿真结果验证了该方法的有效性。 适合人群:从事电机控制系统设计的研究人员、工程师及高校相关专业师生。 使用场景及目标:适用于希望深入了解PMSM先进控制策略的研发团队,旨在提升电机控制系统的稳定性、效率和平顺性,减少转矩脉动和电流谐波,从而延长设备使用寿命并提高能源利用效率。 其他说明:文章不仅提供了详细的理论推导和代码示例,还分享了许多实践经验,有助于读者快速掌握这一复杂但高效的控制技术。此外,文中提到的部分模块还可以灵活应用于其他类型的预测控制中。

    thymeleaf-2.0.12.jar中文文档.zip

    # 压缩文件中包含: 中文文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

Global site tag (gtag.js) - Google Analytics