• Spring+SpringMVC+MyBatis框架整合的配置


    Spring+SpringMVC+MyBatis框架整合的配置

    一、框架介绍

    1、Spring框架

    1.1、特性

    不扯那些有的没的,夸赞的话我们上官网去看,这里只总结一些关于Spring框架的东西。

    ①、Spring是一个轻量级的JavaEE框架。

    通俗点来说,所谓的轻量级,就是没有那么繁琐了,至于JavaEE,它只是j2EE的另一个名称,指代的是企业版。剩下的还有j2SE和J2ME,分别是标准版和用于移动设备、嵌入式设备上的Java应用程序。

    ②、Spring可以解决企业应用开发的复杂性

    以上是Spring框架的一些特性,重在理解。

    1.2、IOC控制反转

    控制反转,就是把创建对象的过程交给Spring进行管理,在应用开发场景中,我们会使用到Spring的注解,类似与@Bean、@controller、@Service、@Component等注解,这些都是将类交给Spring,使用时,创建对象的过程交给Spring,通过@Autowired直接注入即可。

    1.3、Aop面向切面编程

    与之对应的还有OOP,即面向对象编程。这两个是一种思想,面向对象编程是将开发业务中的事务对象化,通过其拥有的属性建立类和对象的概念,从而完成代码替代实际事务的开发。而AOP思想是面向切面编程,就是不修改源代码进行功能增强。

    1.4、Spring的特点

    (1)方便解耦,简化开发

    (2)Aop变成支持

    (3)方便程序测试

    (4)方便和其他框架进行整合

    (5)方便进行事物操作

    (6)降低API开发难度

    2、SpringMVC框架

    2.1、介绍

    Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把Model,View,Controller分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。

    SpringMVC以DispatcherServlet为核心,负责协调和组织不同组件以完成请求处理并返回响应的工作,实现了MVC模式。

    2.2、思路
    • 用户发送请求至前端控制器DispatcherServlet
    • DispatcherServlet收到请求调用HandlerMapping处理器映射器。
    • 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
    • DispatcherServlet通过HandlerAdapter处理器适配器调用处理器
    • 执行处理器(Controller,也叫后端控制器)。
    • Controller执行完成返回ModelAndView
    • HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
    • DispatcherServlet将ModelAndView传给ViewReslover视图解析器
    • ViewReslover解析后返回具体View
    • DispatcherServlet对View进行渲染视图(即将模型数据填充至视图中)。
    • DispatcherServlet响应用户。

    从上面可以看出,DispatcherServlet有接收请求,响应结果,转发等作用。有了DispatcherServlet之后,可以减少组件之间的耦合度。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ME2lH9t5-1662019188863)(D:\xmImg\typora.jpeg)]

    2.3、优点
    1. 可以支持各种视图技术,而不仅仅局限于JSP;

    2. 与Spring框架集成(如IoC容器、AOP等);

    3. 清晰的角色分配:前端控制器(dispatcherServlet) , 请求到处理器映射(handlerMapping), 处理器适配器(HandlerAdapter), 视图解析器(ViewResolver)。

    2.4、主要组件
    2.4.1、前端控制器 DispatcherServlet(不需要程序员开发)

    作用:接收请求、响应结果,相当于转发器,有了DispatcherServlet 就减少了其它组件之间的耦合度。

    2.4.2、处理器映射器HandlerMapping(不需要程序员开发)

    作用:根据请求的URL来查找Handler

    2.4.3、处理器适配器HandlerAdapter

    注意:在编写Handler的时候要按照HandlerAdapter要求的规则去编写,这样适配器HandlerAdapter才可以正确的去执行Handler。

    2.4.4、处理器Handler(需要程序员开发)
    2.4.5、视图解析器 ViewResolver(不需要程序员开发)

    作用:进行视图的解析,根据视图逻辑名解析成真正的视图(view)

    2.4.6、视图View(需要程序员开发jsp)

    View是一个接口, 它的实现类支持不同的视图类型(jsp,freemarker,pdf等等)

    2.5、springMVC和struts2的区别?

    springmvc的入口是一个servlet即前端控制器(DispatchServlet),而struts2入口是一个filter过虑器(
    StrutsPrepareAndExecuteFilter)。

    springmvc是基于方法开发(一个url对应一个方法),请求参数传递到方法地形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。

    Struts采用值栈存储请求和响应的数据,通过OGNL存取数据,springmvc通过参数解析器是将request请求内容解析,并给方法形参赋值,将数据和视图封装成ModelAndView对象,最后又将ModelAndView中的模型数据通过reques域传输到页面。Jsp视图解析器默认使用jstl。

    3、MyBatis框架

    3.1、介绍

    mybatis是一个用Java编写的持久层框架,它使用ORM实现了结果集的封装。

    ORM是Object Relational Mapping 对象关系映射。简单来说,就是把数据库表和实体类及实体类的属性对应起来,让开发者操作实体类就实现操作数据库表。
    它封装了jdbc操作的很多细节,使开发者只需要关注sql语句本身,而无需关注注册驱动,创建连接等烦杂过程

    3.2、持久层的解决方案

    1.JDBC技术–>Connection、PreparedStatement、ResultSet

    2.Spring的JdbcTemplate–>Spring中对Jdbc的简单封装

    3.Apache的DBUtils–>它和Spring的JdbcTemplate很像,也是对Jdbc的简单封装

    以上这些都不是框架(JDBC是规范、Spring的JdbcTemplate和Apache的DBUtils都只是工具类)

    4、框架整合的配置文件

    4.1、web.xml
    
    <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
             version="3.1">
    
      
      <welcome-file-list>
        <welcome-file>pages/admin/Hplus-v.4.1.0/login_v2.jspwelcome-file>
      welcome-file-list>
    
      
      <filter>
        <filter-name>characterEncodingFilterfilter-name>
        <filter-class>org.springframework.web.filter.CharacterEncodingFilterfilter-class>
        <init-param>
          <param-name>encodingparam-name>
          <param-value>UTF-8param-value>
        init-param>
      filter>
      <filter-mapping>
        <filter-name>characterEncodingFilterfilter-name>
        <url-pattern>/*url-pattern>
      filter-mapping>
    
      
      <context-param>
        <param-name>contextConfigLocationparam-name>
        <param-value>classpath:applicationContext.xmlparam-value>
      context-param>
      <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListenerlistener-class>
      listener>
    
      
      <servlet>
        <servlet-name>dispatcherServletservlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServletservlet-class>
        <init-param>
          <param-name>contextConfigLocationparam-name>
          <param-value>classpath:springmvc.xmlparam-value>
        init-param>
        <load-on-startup>1load-on-startup>
      servlet>
      <servlet-mapping>
        <servlet-name>dispatcherServletservlet-name>
        <url-pattern>*.dourl-pattern>
      servlet-mapping>
    
      
      <error-page>
        <error-code>404error-code>
        <location>/pages/admin/Hplus-v.4.1.0/404.htmllocation>
      error-page>
      <error-page>
        <error-code>500error-code>
        <location>/pages/admin/Hplus-v.4.1.0/500.htmllocation>
      error-page>
    web-app>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    4.2、jdbc.properties
    #mysql
    driverClassName=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/gxd?allowMultiQueries=true&useUnicode=true&characterEncoding=UTF-8
    username=root
    password=123456
    
    • 1
    • 2
    • 3
    • 4
    • 5
    4.3、log4j.properties

    这是日志的配置文件,不参与整合也可以

    log4j.rootLogger=debug, stdout
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.Target=System.err
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %l %m %n
    
    #log4j.rootLogger=debug,logfile
    #
    #log4j.appender.logfile=org.apache.log4j.FileAppender
    #log4j.appender.logfile.File=D:\\dt48_ssm.log
    #log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    #log4j.appender.logfile.layout.ConversionPattern=%p %d %F %M  %m%n
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    4.4、mybatis.xml
    
    DOCTYPE configuration
    PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        
    
        
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <property name="dialect" value="mysql">property>
            plugin>
        plugins>
    
    configuration>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    4.5、springmvc.xml
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:mvc="http://www.springframework.org/schema/mvc"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:task="http://www.springframework.org/schema/task"
           xsi:schemaLocation="http://www.springframework.org/schema/beans
    			http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    			http://www.springframework.org/schema/mvc
    			http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
    			http://www.springframework.org/schema/context
    			http://www.springframework.org/schema/context/spring-context-3.2.xsd
    			http://www.springframework.org/schema/task
    	   		http://www.springframework.org/schema/task/spring-task-3.2.xsd">
    
        
        <context:component-scan base-package="com.java.*" />
    
        
        <mvc:annotation-driven />
    
        
        <bean id="internalResourceViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            
            <property name="prefix" value="/pages/">property>
            
            <property name="suffix" value="">property>
        bean>
    
        
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            
            <property name="defaultEncoding" value="UTF-8">property>
            
            <property name="maxUploadSize" value="10485760">property>
        bean>
    
        
    
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    4.6、applicationContext.xml
    
    <beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:p="http://www.springframework.org/schema/p"
           xmlns:context="http://www.springframework.org/schema/context"
           xmlns:tx="http://www.springframework.org/schema/tx"
           xsi:schemaLocation="
           http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-3.2.xsd
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    
        
        <bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
            <property name="location" value="classpath:jdbc.properties">property>
        bean>
    
        
        <bean id="basicDataSource" class="org.apache.commons.dbcp.BasicDataSource">
            <property name="driverClassName" value="${driverClassName}">property>
            <property name="url" value="${url}">property>
            <property name="username" value="${username}">property>
            <property name="password" value="${password}">property>
        bean>
    
        
        <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
            
            <property name="dataSource" ref="basicDataSource">property>
            
            <property name="mapperLocations" value="classpath*:mapper/*.xml">property>
            
            <property name="configLocation" value="classpath:mybatis.xml">property>
        bean>
    
        
        <bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            
            <property name="basePackage" value="com.java.mapper">property>
        bean>
    
    beans>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    5、maven包

    5.1、pom.xml

    <dependencies>
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>4.11version>
          <scope>testscope>
        dependency>
        <dependency>
          <groupId>com.mangofactorygroupId>
          <artifactId>swagger-springmvcartifactId>
          <version>1.0.2version>
        dependency>
        
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-contextartifactId>
          <version>${spring.version}version>
          <exclusions>
            
            <exclusion>
              <groupId>commons-logginggroupId>
              <artifactId>commons-loggingartifactId>
            exclusion>
          exclusions>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-webmvcartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-jdbcartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-txartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-ormartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-context-supportartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>org.springframeworkgroupId>
          <artifactId>spring-aspectsartifactId>
          <version>${spring.version}version>
        dependency>
        <dependency>
          <groupId>commons-fileuploadgroupId>
          <artifactId>commons-fileuploadartifactId>
          <version>1.2.1version>
        dependency>
        <dependency>
          <groupId>commons-logginggroupId>
          <artifactId>commons-loggingartifactId>
          <version>1.0.4version>
        dependency>
        <dependency>
          <groupId>commons-collectionsgroupId>
          <artifactId>commons-collectionsartifactId>
          <version>3.1version>
        dependency>
        <dependency>
          <groupId>commons-iogroupId>
          <artifactId>commons-ioartifactId>
          <version>1.4version>
        dependency>
        <dependency>
          <groupId>commons-dbcpgroupId>
          <artifactId>commons-dbcpartifactId>
          <version>1.3version>
        dependency>
        <dependency>
          <groupId>commons-poolgroupId>
          <artifactId>commons-poolartifactId>
          <version>1.5.6version>
        dependency>
        <dependency>
          <groupId>commons-langgroupId>
          <artifactId>commons-langartifactId>
          <version>2.3version>
        dependency>
        <dependency>
          <groupId>commons-codecgroupId>
          <artifactId>commons-codecartifactId>
          <version>1.10version>
        dependency>
        <dependency>
          <groupId>commons-httpclientgroupId>
          <artifactId>commons-httpclientartifactId>
          <version>3.1version>
        dependency>
        
        
        
    
        
    
        <dependency>
          <groupId>c3p0groupId>
          <artifactId>c3p0artifactId>
          <version>0.9.1.2version>
        dependency>
    
        
        <dependency>
          <groupId>mysqlgroupId>
          <artifactId>mysql-connector-javaartifactId>
          <version>5.1.46version>
        dependency>
    
        
        <dependency>
          <groupId>org.mybatisgroupId>
          <artifactId>mybatis-springartifactId>
          <version>1.2.0version>
        dependency>
        <dependency>
          <groupId>org.mybatisgroupId>
          <artifactId>mybatisartifactId>
          <version>3.2.2version>
        dependency>
        
        <dependency>
          <groupId>cn.jpush.apigroupId>
          <artifactId>jpush-clientartifactId>
          <version>3.1.3version>
        dependency>
        
    
        
        <dependency>
          <groupId>com.fasterxml.jackson.coregroupId>
          <artifactId>jackson-annotationsartifactId>
          <version>2.9.0.pr2version>
        dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.coregroupId>
          <artifactId>jackson-coreartifactId>
          <version>2.9.0.pr2version>
        dependency>
        <dependency>
          <groupId>org.codehaus.jacksongroupId>
          <artifactId>jackson-core-aslartifactId>
          <version>1.9.13version>
        dependency>
        <dependency>
          <groupId>com.fasterxml.jackson.coregroupId>
          <artifactId>jackson-databindartifactId>
          <version>2.9.0.pr2version>
        dependency>
        <dependency>
          <groupId>org.codehaus.jacksongroupId>
          <artifactId>jackson-mapper-aslartifactId>
          <version>1.9.13version>
        dependency>
        
        <dependency>
          <groupId>log4jgroupId>
          <artifactId>log4jartifactId>
          <version>1.2.14version>
        dependency>
        
        <dependency>
          <groupId>org.apache.poigroupId>
          <artifactId>poiartifactId>
          <version>3.9version>
        dependency>
        
        <dependency>
          <groupId>org.jdomgroupId>
          <artifactId>jdomartifactId>
          <version>1.1.3version>
        dependency>
    
        <dependency>
          <groupId>javax.servletgroupId>
          <artifactId>javax.servlet-apiartifactId>
          <version>3.0.1version>
          <scope>providedscope>
        dependency>
    
        
    
        <dependency>
          <groupId>jstlgroupId>
          <artifactId>jstlartifactId>
          <version>1.2version>
        dependency>
    
        <dependency>
          <groupId>p6spygroupId>
          <artifactId>p6spyartifactId>
          <version>2.1.4version>
        dependency>
    
        <dependency>
          <groupId>junitgroupId>
          <artifactId>junitartifactId>
          <version>3.8.1version>
          <scope>testscope>
        dependency>
    
        
        <dependency>
          <groupId>org.hibernategroupId>
          <artifactId>hibernate-validatorartifactId>
          <version>5.4.1.Finalversion>
        dependency>
        
        <dependency>
          <groupId>com.github.pagehelpergroupId>
          <artifactId>pagehelperartifactId>
          <version>4.1.6version>
        dependency>
        <dependency>
          <groupId>com.github.jsqlparsergroupId>
          <artifactId>jsqlparserartifactId>
          <version>0.9.5version>
        dependency>
        
        <dependency>
          <groupId>org.projectlombokgroupId>
          <artifactId>lombokartifactId>
          <version>1.12.6version>
          <scope>providedscope>
        dependency>
    
        
        <dependency>
          <groupId>commons-logginggroupId>
          <artifactId>commons-loggingartifactId>
          <version>1.2version>
        dependency>
        
        <dependency>
          <groupId>org.apache.httpcomponentsgroupId>
          <artifactId>httpclientartifactId>
          <version>4.5version>
        dependency>
        
        <dependency>
          <groupId>org.apache.httpcomponentsgroupId>
          <artifactId>httpcoreartifactId>
          <version>4.4.1version>
        dependency>
    
        
        <dependency>
          <groupId>cn.hutoolgroupId>
          <artifactId>hutool-allartifactId>
          <version>4.5.12version>
        dependency>
      dependencies>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
    • 102
    • 103
    • 104
    • 105
    • 106
    • 107
    • 108
    • 109
    • 110
    • 111
    • 112
    • 113
    • 114
    • 115
    • 116
    • 117
    • 118
    • 119
    • 120
    • 121
    • 122
    • 123
    • 124
    • 125
    • 126
    • 127
    • 128
    • 129
    • 130
    • 131
    • 132
    • 133
    • 134
    • 135
    • 136
    • 137
    • 138
    • 139
    • 140
    • 141
    • 142
    • 143
    • 144
    • 145
    • 146
    • 147
    • 148
    • 149
    • 150
    • 151
    • 152
    • 153
    • 154
    • 155
    • 156
    • 157
    • 158
    • 159
    • 160
    • 161
    • 162
    • 163
    • 164
    • 165
    • 166
    • 167
    • 168
    • 169
    • 170
    • 171
    • 172
    • 173
    • 174
    • 175
    • 176
    • 177
    • 178
    • 179
    • 180
    • 181
    • 182
    • 183
    • 184
    • 185
    • 186
    • 187
    • 188
    • 189
    • 190
    • 191
    • 192
    • 193
    • 194
    • 195
    • 196
    • 197
    • 198
    • 199
    • 200
    • 201
    • 202
    • 203
    • 204
    • 205
    • 206
    • 207
    • 208
    • 209
    • 210
    • 211
    • 212
    • 213
    • 214
    • 215
    • 216
    • 217
    • 218
    • 219
    • 220
    • 221
    • 222
    • 223
    • 224
    • 225
    • 226
    • 227
    • 228
    • 229
    • 230
    • 231
    • 232
    • 233
    • 234
    • 235
    • 236
    • 237
    • 238
    • 239
    • 240
    • 241
    • 242
    • 243
    • 244
    • 245
    • 246
    • 247
    • 248
    • 249
    • 250
    • 251
    • 252
    • 253
    • 254
    • 255
    • 256
    • 257
    • 258
    • 259
    • 260
    • 261
    • 262
    • 263
    • 264
    • 265
    • 266
    • 267
    • 268
    • 269
    • 270
    • 271
    • 272
    • 273
    • 274
    • 275
    • 276
    • 277
    • 278
    • 279
    • 280
    • 281
    • 282
    • 283
    • 284
    • 285
    • 286
    • 287
    • 288
    • 289
    • 290
    • 291
    • 292
    • 293
      org.apache.httpcomponents
      httpclient
      4.5
    
    
    
      org.apache.httpcomponents
      httpcore
      4.4.1
    
    
    
    
      cn.hutool
      hutool-all
      4.5.12
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    ```
  • 相关阅读:
    List接口和常用方法
    我的创业分享:不到1w的启动资金,无需货源,却做到了月入10W+
    技术学习:Python(21)|爬虫篇|selenium自动化操作浏览器
    YTU 问题 C: 链表重置(线性表)
    HashMap 的哈希函数
    WebDAV之π-Disk派盘 + GeniusScan
    一张图进阶 RocketMQ - 消息存储
    Filebeat+Kafka+ELK
    使用gulp助力前端自动化
    高效管理企业固定资产的办法
  • 原文地址:https://blog.csdn.net/fzt12138/article/details/126645351