`

ssm框架整合与小测试

阅读更多

       ssm框架是由Spring+SpringMVC+Mybatis整合而成,目前正在努力学习中,虽然网上的搭建教程很多,但是实际上都不怎么能跑起来,可能 大家用的开发软件不一样,和对框架的要求有所不同;下面我就大概讲一下自己是怎么搭建出来的。(出自Spring3.x企业应用开发实战)

 1、Spring

      是分层的Java SE/EE应用一站式的轻量级开源框架,以IOC(Inverse  of  Control:控制反转)和AOP(Aspect Oriented Programming:面向切面编程)为内核,提供了展现层 SpringMVC和持久层Spring JDBC以及业务层事务管理等众多的企业级应用技术;

优点:

①方便解耦,简化开发

   通过Spring提供的IOC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度耦合。有了Spring,用户不必再 为 单实例模式类,属性文件解析等这些很底层的需求编写代码,可以专注于上层的应用;

②AOP编程的支持

    通过Spring提供的AOP功能,方便 进行面向 切面的编程,许多不容易用传统OOP实现的功能可以用AOP轻松实现;

③声明式事务的支持

    在Spring中我们可以从单调烦闷的事务管理代码中解脱出来,通过 声明式方式灵活的进行 事务的管理,提高开发效率和质量;

④方便程序的测试

 

⑤方便集成各种优秀的框架

 

⑥降低JavaEE API的使用难度

 

⑦Java源码是经典学习范例

 

2、Spring MVC

Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进行定制。

 

3、Mybatis

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
(1)加载配置并初始化
触发条件:加载配置文件
处理过程:将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置、执行的SQL语句、结果映射配置),存储在内存中。
(2)接收调用请求
触发条件:调用Mybatis提供的API
传入参数:为SQL的ID和传入参数对象
处理过程:将请求传递给下层的请求处理层进行处理。
(3)处理操作请求
触发条件:API接口层传递请求过来
传入参数:为SQL的ID和传入参数对象
处理过程:
(A)根据SQL的ID查找对应的MappedStatement对象。
(B)根据传入参数对象解析MappedStatement对象,得到最终要执行的SQL和执行传入参数。
(C)获取数据库连接,根据得到的最终SQL语句和执行传入参数到数据库执行,并得到执行结果。
(D)根据MappedStatement对象中的结果映射配置对得到的执行结果进行转换处理,并得到最终的处理结果。
(E)释放连接资源。
(4)返回处理结果将最终的处理结果返回。
(注:网上又搜了好多的资料,发现自己真是菜的抠脚,以后要逐一攻破 这些个框架,我认为科班出身的必须能理解自己用的框架的原理,要不然这么多年,学了什么?)
下面开始讲解 一下我的配置过程吧,这个过程是非常痛苦的,因为直接就是把三个框架整合在一起,而好多书上都是 先开始学习Spring 框架 ,然后 根据知识的增加慢慢的整合更多的东西;
我使用的开发工具是Idea;
<1>首先用Idea创建 一个Maven项目,这个创建 过程以及maven环境的配置 这里就不再多讲,可以百度,教程挺多的;
<2>创建出自己心仪的目录结构,我这个人比较懒,首先先创建 一个简单的小目录;如下图:


 

目录大概就这样 ,必须配置的几个都写上了,以后需要加 过滤器什么的再另行添加;

 

<3>配置 自己的dao层,也就是spring-db.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:context="http://www.springframework.org/schema/context"
       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/beans ">
    <!-- 开启事务注解驱动 -->
    <context:annotation-config />
    <!-- 启动组件扫描,排除@Controller组件,该组件由SpringMVC配置文件扫描 -->
    <context:component-scan base-package="com.tao.eat">
        <context:exclude-filter type="annotation"
                                expression="org.springframework.stereotype.Controller" />
    </context:component-scan>
    <!-- 1.配置数据库相关参数properties的属性:${url} -->
    <context:property-placeholder location="classpath:jdbc.properties" />

    <!-- 2.数据库连接池 -->
    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <!-- 配置连接池属性 -->
        <property name="driverClassName" value="${jdbc.driver}" />
        <property name="url" value="${jdbc.url}" />
        <property name="username" value="${jdbc.username}" />
        <property name="password" value="${jdbc.password}" />
    </bean>
    <!-- 3.配置SqlSessionFactory对象 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据库连接池 -->
        <property name="dataSource" ref="dataSource" />
        <!-- 配置MyBaties全局配置文件:mybatis-config.xml -->
        <property name="configLocation" value="classpath:mybatis-config.xml" />
        <!-- 扫描entity包 使用别名 -->
        <property name="typeAliasesPackage" value="com.tao.eat.entity" />
        <!-- 扫描sql配置文件:mapper需要的xml文件 -->
        <property name="mapperLocations" value="classpath:mapper/**/*.xml" />
    </bean>

    <!-- 4.配置扫描Dao接口包,动态实现Dao接口,注入到spring容器中 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 注入sqlSessionFactory -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
        <!-- 给出需要扫描Mapper接口包 -->
        <property name="basePackage" value="com.tao.eat.mapper" />
    </bean>



</beans>

 <4>配置service层,spring-service.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:context="http://www.springframework.org/schema/context"
	   xmlns:tx="http://www.springframework.org/schema/tx" xmlns:jdbc="http://www.springframework.org/schema/jdbc"
	   xmlns:aop="http://www.springframework.org/schema/aop"
	   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/tx
	http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/jdbc http://www.springframework.org/schema/jdbc/spring-jdbc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
	<!-- 扫描service包下所有使用注解的类型 -->
	<context:component-scan base-package="com.tao.eat.service" />
	<context:component-scan base-package="com.tao.eat.controller"/>

	<!-- 配置事务管理器 -->
	<bean id="transactionManager"
		  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		<!-- 注入数据库连接池 -->
		<property name="dataSource" ref="dataSource" />
	</bean>
	<aop:config proxy-target-class="true">
	<aop:pointcut id="serviceMethod" expression="execution(* com.tao.eat.service..*(..))"/>
	<aop:advisor pointcut-ref="serviceMethod" advice-ref="txAdvice"/>
	</aop:config>
	<tx:advice id = "txAdvice" transaction-manager="transactionManager">
	<tx:attributes>
	<tx:method name = "*"/>
	</tx:attributes>
	</tx:advice>
	<!-- 配置基于注解的声明式事务 -->
	<tx:annotation-driven transaction-manager="transactionManager" />
	<import resource="spring-db.xml"/>
</beans>

<5>配置基础资源spring-web.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:context="http://www.springframework.org/schema/context"
	xmlns:mvc="http://www.springframework.org/schema/mvc" 
	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/mvc
	http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
	<!-- 配置SpringMVC -->
	<!-- 1.开启SpringMVC注解模式 -->
	<!-- 简化配置: 
		(1)自动注册DefaultAnootationHandlerMapping,AnotationMethodHandlerAdapter 
		(2)提供一些列:数据绑定,数字和日期的format @NumberFormat, @DateTimeFormat, xml,json默认读写支持 
	-->
	<mvc:annotation-driven />
	
	<!-- 2.静态资源默认servlet配置
		(1)加入对静态资源的处理:js,gif,png
		(2)允许使用"/"做整体映射
	 -->
	 <mvc:default-servlet-handler/>
	 
	 <!-- 3.配置jsp 显示ViewResolver -->
	 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
	 	<property name="viewClass" value="org.springframework.web.servlet.view.JstlView" />
	 	<property name="prefix" value="/WEB-INF/jsp/" />
	 	<property name="suffix" value=".jsp" />
	 </bean>
	 
	 <!-- 4.扫描controller相关的bean -->
	 <context:component-scan base-package="com.tao.eat.controller" />
</beans>

 <6>整合spring和mybatis,mybatis-spring.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <!-- 配置全局属性 -->
    <settings>
        <!-- 使用jdbc的getGeneratedKeys获取数据库自增主键值 -->
        <setting name="useGeneratedKeys" value="true" />

        <!-- 使用列别名替换列名 默认:true -->
        <setting name="useColumnLabel" value="true" />

        <!-- 开启驼峰命名转换:Table{create_time} -> Entity{createTime} -->
        <setting name="mapUnderscoreToCamelCase" value="true" />
    </settings>
</configuration>

 <7>最后就是配置一下web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  <!-- 如果是用mvn命令生成的xml,需要修改servlet版本为3.1 -->
  <!-- 配置DispatcherServlet -->
  <servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!-- 配置springMVC需要加载的配置文件
        spring-dao.xml,spring-service.xml,spring-web.xml
        Mybatis - > spring -> springmvc
     -->
    <init-param>
      <param-name>contextConfigLocation</param-name>
      <param-value>classpath:spring/spring-*.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <!-- 默认匹配所有的请求 -->
    <url-pattern>/</url-pattern>
  </servlet-mapping>
</web-app>

<8>配置测试 BaseTest.java

package com.tao.eat;
import org.junit.runner.RunWith;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
 * 配置spring和junit整合,junit启动时加载springIOC容器 spring-test,junit
 */
@RunWith(SpringJUnit4ClassRunner.class)
// 告诉junit spring配置文件
@ContextConfiguration({ "classpath:spring/spring-db.xml", "classpath:spring/spring-service.xml" })
public class BaseTest {

}

  <9>pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>ssm_eat</groupId>
  <artifactId>ssm_eat</artifactId>
  <packaging>war</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>ssm_eat Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <!--单元测试-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <!--日志-->
    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>
    <!--数据库连接-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.36</version>
    </dependency>
    <dependency>
      <groupId>c3p0</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.1.1</version>
    </dependency>
    <!--Mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.3.0</version>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.2.3</version>

    </dependency>
    <dependency>
      <groupId>org.mybatis.spring.boot</groupId>
      <artifactId>mybatis-spring-boot-starter</artifactId>
      <version>1.1.1</version>
    </dependency>
    <!--Servlet Web-->
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>
    <dependency>
      <groupId>jstl</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.jackson.core</groupId>
      <artifactId>jackson-databind</artifactId>
      <version>2.8.0</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>3.1.0</version>
    </dependency>
    <!--Spring-->
    <!--Spring核心-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <!--Spring Dap层-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <!--Spring Web-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.aspectj</groupId>
      <artifactId>aspectjweaver</artifactId>
      <version>1.8.6</version>
    </dependency>
    <!--Spring Test-->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>3.2.13.RELEASE</version>
    </dependency>
    <!-- redis客户端:Jedis -->
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
      <version>2.7.3</version>
    </dependency>
    <dependency>
      <groupId>com.dyuproject.protostuff</groupId>
      <artifactId>protostuff-core</artifactId>
      <version>1.0.8</version>
    </dependency>
    <dependency>
      <groupId>com.dyuproject.protostuff</groupId>
      <artifactId>protostuff-runtime</artifactId>
      <version>1.0.8</version>
    </dependency>

    <!-- Map工具类 -->
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2</version>
    </dependency>
  </dependencies>
  <build>
    <finalName>ssm_eat</finalName>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

 

我的配置 就是这样的,具体我能看懂,但是什么都不参考也写不出来,配置就是这样的,这里面还参考了好多博主的知识,但是网页关了,就无法一一列出了。

  • 大小: 26.9 KB
分享到:
评论

相关推荐

    ssm框架整合小demo

    这个"ssm框架整合小demo"提供了一个实践性的示例,旨在帮助开发者理解和应用这些技术。以下是对这个项目及其包含文件的详细解读。 首先,Spring是一个全面的后端应用程序管理框架,它提供了依赖注入(DI)和面向切...

    ssm框架整合jar包

    SSM框架整合是JavaEE开发中的重要组成部分,它包含了Spring、Spring MVC和MyBatis这三个主流的开源框架。这三个框架的结合,为开发者提供了一种高效、灵活且易于管理的Web应用开发解决方案。 首先,Spring框架是...

    ssm框架整合redis源码

    在本项目中,"ssm框架整合redis源码"意味着开发者将SSM框架与Redis缓存系统进行了集成,主要目的是实现session共享。Session共享是Web应用中解决用户会话跨服务器问题的关键技术,尤其是在分布式环境下,确保用户...

    SSM框架整合超详细文件版,附带源码

    - 测试:编写JUnit测试用例,验证SSM框架整合是否成功。 5. **源码分析**:附带的源码可以帮助读者了解每个层次的实现细节,例如,Controller如何转发请求,Service如何调用DAO,以及Mybatis的SQL是如何执行的。 ...

    ssm框架整合视频

    SSM框架整合是Java开发中常见的技术组合,主要包括Spring、Spring MVC和MyBatis三个核心组件。本视频教程是针对初学者设计的,通过详细的教学步骤,帮助学习者理解并掌握SSM框架的集成和应用。 Spring框架是企业级...

    ssm框架整合包

    SSM框架整合是Java Web开发中的一个重要概念,它是由Spring、Spring MVC和MyBatis三个开源框架集成的一个经典组合。这个"ssm框架整合包"很可能是为了方便开发者快速搭建SSM项目而提供的一个资源集合。 Spring框架是...

    最新SSM框架整合带完整测试代码2018/8/25

    这个最新的SSM框架整合项目,发布于2018年8月25日,据描述,它已经经过了完整的调试,确保没有bug,且包含了前后台的测试代码,这对于开发者来说是一个宝贵的资源。 **Spring框架**是整个SSM的核心,它提供了一个...

    SSM框架整合代码

    SSM框架整合是Java开发中常见的技术组合,主要包括Spring、SpringMVC和Mybatis三个核心组件。这三种框架的结合可以有效地实现业务逻辑与数据访问层的解耦,提高开发效率,同时也便于项目的维护和扩展。 Spring框架...

    SSM框架整合源码

    SSM框架整合是Java开发中常见的技术组合,主要包括Spring、Spring MVC和MyBatis三个开源框架。这个源码实现了一个完整的、分层清晰的Web应用,使得开发者能够更高效地处理业务逻辑、数据访问和视图展示。下面将详细...

    ssm框架整合maven

    SSM框架整合Maven是Java开发中常见的技术组合,它涉及Spring、SpringMVC和MyBatis三个核心组件,利用Maven进行项目管理和构建。在Java Web开发领域,SSM框架因其灵活性和强大的功能而备受青睐。下面我们将深入探讨这...

    SSM框架整合IDEA版

    SSM框架整合是Java开发中常见的技术组合,主要包括Spring、Spring MVC和MyBatis三个核心组件。Spring作为全面的企业级应用框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Spring MVC是Spring框架的一个...

    ssm框架整合.zip

    SSM框架整合指的是将Spring、SpringMVC和MyBatis三个主流的Java开源框架整合在一起,以构建高效、灵活的企业级Web应用。这三个框架分别负责不同的职责:Spring作为整体的容器管理Bean,SpringMVC处理HTTP请求和响应...

    ssm框架整合详细讲解

    SSM框架整合是Java开发中常见的一种技术组合,主要包括Spring、Spring MVC和MyBatis三个开源框架。这三者结合可以构建出强大的企业级Web应用。下面将详细讲解SSM框架整合的关键步骤、核心概念以及如何实现它们的无缝...

    ssm框架的整合

    - 测试:编写JUnit测试用例,验证SSM框架整合是否成功。 5. 应用场景:SSM框架适用于大型企业级应用,特别是在数据量大、业务复杂的项目中,其灵活性和可扩展性能够满足各种需求。例如,电商平台、在线教育平台、...

    SSM框架整合所用jar包

    下面将详细介绍SSM框架整合过程中所涉及的核心知识点,并解释每个jar包的作用。 1. **Spring框架**:Spring是Java应用程序中的核心框架,提供依赖注入(DI)和面向切面编程(AOP)等特性。在SSM整合中,Spring负责...

    ssm框架整合(maven),

    SSM框架整合指的是将Spring、Struts2和MyBatis三个主流的Java Web开发框架集成为一套完整的解决方案。这个过程可以极大地提高开发效率,降低各组件间的耦合度。在这个项目中,通过Maven进行依赖管理和构建,使得项目...

    SSM框架整合的资料(pdf版本),直接下载打开后即可查阅

    SSM框架,全称为Spring、SpringMVC和MyBatis的整合,是JavaEE开发中广泛应用的技术架构。这个框架集合了Spring的全面控制反转和依赖注入能力,SpringMVC的请求处理和视图管理,以及MyBatis的灵活数据持久化机制。...

    ssm框架整合jar包.rar

    这个“ssm框架整合jar包.rar”压缩文件包含了一系列用于快速搭建SSM项目的必需库,使得开发者能够高效地进行后端开发工作。 1. **Spring框架**:Spring是一个开源的应用框架,它提供了依赖注入(DI)和面向切面编程...

    基于idea的ssm框架整合示例

    这个基于IDEA的SSM框架整合示例,旨在帮助开发者理解如何在IDEA环境中配置和运行一个完整的SSM项目。接下来,我们将详细探讨SSM框架的组成部分以及它们在实际开发中的作用。 **Spring框架**:Spring是一个全面的...

    SSM框架整合包

    总的来说,这个"SSM框架整合包"是一个方便的开发资源集合,它集成了Java Web开发中的主要组件,使得开发者能够快速搭建起一个完整的SSM项目结构,从而节省了大量配置和测试的时间,提高了开发效率。

Global site tag (gtag.js) - Google Analytics