欢迎您的访问
专注于Java技术系列文章的Java技术分享网站
精选技术专栏

自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

前言

  开心一刻

    儿子读高中放学回来了,一向不管他学习的我突然来了兴趣,想看看他的学习他的状况,抄起他的数学习题看了起来,当看到 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 = 10! 我当时火冒三丈,一巴掌就呼过去了,怒吼道:你这是怎么读的,1乘以2乘以3乘以…10怎么等于10! 旁边的媳妇一平底锅甩我脸上:不等于10的阶乘,那等于多少?我:这不是感叹号吗?

43_1.png

写作背景

  关于 ssm 的基础篇,我一共写了三篇博客:

  利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)

    搭建 ssm 比较简单,eclipse 配置好 maven,工程中配置好相关配置文件即可;但是此种方式已过时,包括eclipse、spring4.0.2、ssm的搭建方式(pom中配置的依赖太多),不再推荐此种方式。

  关于利用maven搭建ssm的博客,我们一起来探讨下问的最多的问题

    根据大家搭建 ssm 过程中遇到的问题,总结出了此篇,主要是针对数据绑定的问题进行了详细的说明;内容不过期,推荐仔细看看。

  Spring MVC的工作原理,我们来看看其源码实现

    由问题:Spring mvc 是何时、何地、如何将Model中的属性绑定到哪个作用域 引发的 Spring MVC 的工作原理的探索,随着 Spring 版本的变迁,Spring MVC 或许会有少许的改动,但其核心不会变,推荐仔细看看。

  近来,还是陆陆续续收到一些刚入门的小伙伴的求助,利用maven/eclipse搭建ssm还是会出现各种各样的问题,关键是我在帮忙解决的过程中竟然发现我不太会用 eclipse 了, 而且 spring 的版本还是 4,我就问他们了:你们怎么还在用 eclipse,spring的版本为什么那么低? 结果我得到一个统一的回答:我是参考的你的博客搭建的。

  此刻我意识到了这是我的问题:随着时间的流逝,我没有及时的更新我的博客 → 利用maven/eclipse搭建ssm(spring+spring mvc+mybatis),导致很多刚入门的小伙伴看到的是过时的内容,误人子弟实乃大罪过!所以我赶紧写了此篇,指正当前正确的方向。一段时间后,此篇博文涉将的内容也会过时,所以大家最好能自己抓住当下主流的内容。

  目前公司用的是 idea + spring boot 实现的工程搭建,也是当下最流行的方式,下面我也就演示下如何利用 idea 和 spring boot 搭建 ssm工程。

IDEA

  IDEA 全称 IntelliJ IDEA,具体它是什么,有什么用,怎么用 等等关于 IDEA 的内容,大家自行去查阅,我就不做啰嗦了。可参考:IDEA 使用教程(持续更新,19年6月14号更新)

  推荐大家用最新的 IDEA 版本,有能力的请支持正版

  只强调一点:maven 设置

    maven的更多内容大家自行去查阅资料,maven 的安装可参考利用maven/eclipse搭建ssm(spring+spring mvc+mybatis),推荐用最新的;安装好maven之后,推荐配置上阿里的镜像,在 maven 的配置文件 settings.xml 中的 mirrors 节点下新增如下 mirror 节点

<mirror>
    <id>alimaven</id>
    <name>aliyun maven</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    <mirrorOf>central</mirrorOf> 
</mirror>

    maven安装好后,需要在 idea 中配置好 maven,配置过程很简单,如下图所示

43_2.png

    这样 idea 集成 maven 就成功了

Spring Boot

  关于 Spring Boot 的详细信息,大家可以去它的官方文档看,也可以看园子内大佬的博客,推荐:Spring boot 入门篇 

  Spring Boot 是由 Pivotal 团队提供的全新框架,但不是 Spring 的替代品,而是 Spring 的衍生品,目的是用来简化新 Spring 应用的初始搭建以及开发过程;它采用了约定大于配置的做法,默认配置了很多框架的使用方式,就像 Maven 整合了所有的 Jar 包,Spring Boot 整合了所有的框架,同时 Spring Boot 采用 Starters 的方式简化了工程的 maven 依赖配置。

  目前 Spring Boot 的最新的版本是 2.1.6 ,我们不采用它,我们用 2.1.0 这个了有一段时间的版本来演示

SSM 搭建

  我们可以直接下载官网的样例,然后导入到 idea,这是一种方式,但我还是想给大家演示一个完整的从无到有的过程

  工程搭建

43_3.png

    方式很多种,我独爱白的像一张纸一样的初始配置

  配置 maven 依赖

    pom.xml

43_4.png 43_5.png

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.lee</groupId>
    <artifactId>ssm</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <encoding>UTF-8</encoding>
        <java.version>1.8</java.version>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <pagehelper.version>1.2.5</pagehelper.version>
        <druid.version>1.1.10</druid.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.0.RELEASE</version>
    </parent>

    <dependencies>

        <!-- web -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

        <!-- mybatis相关 -->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper-spring-boot-starter</artifactId>
            <version>{pagehelper.version}</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>{druid.version}</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>
</project>

View Code

  工程配置

    application.yml

43_6.png 43_7.png

server:
  port: 8888
  servlet:
    context-path: /ssm
spring:
  #连接池配置
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/mybatis?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
      username: root
      password: 123456
      initial-size: 1                     #连接池初始大小
      max-active: 20                      #连接池中最大的活跃连接数
      min-idle: 1                         #连接池中最小的活跃连接数
      max-wait: 60000                     #配置获取连接等待超时的时间
      pool-prepared-statements: true    #打开PSCache,并且指定每个连接上PSCache的大小
      max-pool-prepared-statement-per-connection-size: 20
      validation-query: SELECT 1 FROM DUAL
      validation-query-timeout: 30000
      test-on-borrow: false             #是否在获得连接后检测其可用性
      test-on-return: false             #是否在连接放回连接池后检测其可用性
      test-while-idle: true             #是否在连接空闲一段时间后检测其可用性
#mybatis配置
mybatis:
  type-aliases-package: com.entity
  #config-location: classpath:mybatis/mybatis-config.xml
  mapper-locations: classpath:mapper/*.xml
# pagehelper配置
pagehelper:
  helperDialect: mysql
  #分页合理化,pageNum<=0则查询第一页的记录;pageNum大于总页数,则查询最后一页的记录
  reasonable: true
  supportMethodsArguments: true
  params: count=countSql

View Code

  完整工程

    java文件夹下的内容,包括 controller、service、mapper、dao 以及 SsmApplication就不逐一展示了,更多详细代码请看:ssm

  实现效果

43_8.png

总结

  不是说过时的东西不能用,而是不推荐用,效率是一方面,安全也是一方面,保不准过时的内容会在后续哪个版本就直接剔除了,那就是真的不能用了;当下 java web 的热门开发工具就是 IDEA(不仅仅只是java哦),热门框架就是 Spring Boot,当下流行不保证一直流行,我们需要保持一颗学习的心,多关注时下的热门技术。

参考

  SpringBoot入门教程(一)详解intellij idea搭建SpringBoot

  Spring boot 入门篇

文章永久链接:https://tech.souyunku.com/?p=34816

赞(77) 打赏



版权归原创作者所有,任何形式转载请联系作者;搜云库技术团队 » 自我救赎 → 利用 IDEA 和 Spring Boot 搭建 SSM

评论 抢沙发

一个专注于Java技术系列文章的技术分享网站

觉得文章有用就打赏一下文章作者

微信扫一扫打赏

微信扫一扫打赏