利用SpringBoot简单快速搭建WEB项目入门

2023-10-31

我们在WEB应用开发过程中,我们常常用到的语言是JAVA语言。作为WEB应用中的霸主级别中
的存在,却常常被嘲讽。“人生苦短,我用python”是python程序员们引以为傲的格言。人们经常
将JAVA与时代新宠Python作比较,至今网上还流传着python代码都在review了而JAVA还在搭框架解决jar包冲突。今天为了给我们JAVA程序员扳回一局。今天,我要向大家介绍的如何快速SpringBoot快速搭建一个SSM项目。

介绍SpringBoot

首先,我们访问Spring Boot官方网站https://spring.io/projects/spring-boot 可以看到官网对他的介绍:

		1.创建独立的Spring应用程序

		2.直接嵌入Tomcat,Jetty或Undertow(无需部署WAR文件)

		3.提供自以为是的“入门”依赖项以简化构建配置

		4.尽可能自动配置Spring和第三方库

		5.提供生产就绪功能,例如指标,运行状况检查和外部化配置

		6.绝对没有代码生成,也不需要XML配置

快速搭建SSM框架

工具:IntellJ IDEA MAVEN
首先,我们创建一个普通的maven工程,点击:
在这里插入图片描述
第二步,填入项目名称与项目域名,就会生成一个maven项目:
在这里插入图片描述
第三步,打开pom文件引入springboot坐标,引入springboot启动类,jdk版本信息,javaweb启动类

<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>cn.xindazj</groupId>
    <artifactId>xindazj-portal</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>war</packaging>
	<packaging>war</packaging>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.2.RELEASE</version>
    </parent>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <!--mybatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.0</version>
        </dependency>
        <!--分页插件pagehelper-->
        <dependency>
            <groupId>com.github.pagehelper</groupId>
            <artifactId>pagehelper</artifactId>
            <version>4.1.3</version>
        </dependency>
        <!-- 通用mapper -->
        <dependency>
            <groupId>tk.mybatis</groupId>
            <artifactId>mapper-spring-boot-starter</artifactId>
            <version>2.0.2</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>
        <!-- 缓存 -->
        <dependency>
            <groupId>redis.clients</groupId>
            <artifactId>jedis</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-redis</artifactId>
        </dependency>
        <!--json解析工具-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
    </dependencies>
</project>

第四步,对ssm,连接数据库进行相关配置,这里我将只介绍一种yml方式配置(启动类上@Bean注入,相关配置类重写 properties都可以进行配置)。在resources目录下新建一个application.yml:

server:
  port: 80
#jdbc
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/xindadb?serverTimezone=GMT%2B8
    username: root
    password: root
#mybatis
mybatis:
  type-aliases-package: cn.xindazj.pojo
  				

第五步,进行启动类的编写:


import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import com.github.pagehelper.PageHelper;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;
import tk.mybatis.spring.annotation.MapperScan;

import java.util.Properties;


@SpringBootApplication
@MapperScan("cn.xindazj.mapper")
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    //配置mybatis的分页插件pageHelper
    @Bean
    public PageHelper pageHelper(){
        PageHelper pageHelper = new PageHelper();
        Properties properties = new Properties();
        properties.setProperty("offsetAsPageNum","true");
        properties.setProperty("rowBoundsWithCount","true");
        properties.setProperty("reasonable","false");
        properties.setProperty("dialect","mysql");    //配置mysql数据库的方言
        pageHelper.setProperties(properties);
        return pageHelper;
    }

    @Bean//使用@Bean注入fastJsonHttpMessageConvert
    public HttpMessageConverters fastJsonHttpMessageConverters(){
        //1.需要定义一个Convert转换消息的对象
        FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
        //2.添加fastjson的配置信息,比如是否要格式化返回的json数据
        FastJsonConfig fastJsonConfig=new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //3.在convert中添加配置信息
        fastConverter.setFastJsonConfig(fastJsonConfig);
        HttpMessageConverter<?> converter=fastConverter;
        return new HttpMessageConverters(converter);
    }
}

最后,对新搭建的项目进行访问测试:

在这里插入图片描述

总结

spring boot是自动配置的管理,将极大的减少我们因为jar包冲突,简化框架搭建,摆脱繁重的配置文件xml等,是JAVA划时代的变化。是不是很激动,让我们赶快试一试吧。这是我第一次发博客,由于自身能力尚浅,可能会存在很多错误之处,还希望csdn的大神们多指导,多批评。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

利用SpringBoot简单快速搭建WEB项目入门 的相关文章

  • 如何作为应用程序发布到页面?

    所以 我有一个应用程序 Facebook 应用程序实体 并且我有一个页面 我想使用应用程序通过java代码 通过restfb或任何其他建议 发布到页面 看起来我错过了页面授予应用程序发布权限的阶段 不知道该怎么做 谢谢你们 乌里 您只能 作
  • 查询 MongoDB 集合中的字段。

    我正在尝试查询 mongodb 集合中的特定字段 这是我的代码和输出 Mongo m new Mongo DB db m getDB mydb DBCollection coll db getCollection student addin
  • Java 卡布局。多张卡中的一个组件

    一个组件 例如JLabel 在多张卡中使用CardLayout 目前看来该组件仅出现在它添加到的最后一张卡上 如果有办法做到这一点 我应该吗 这是不好的做法吗 或者有其他选择吗 你是对的 它只出现在 添加到的最后一张卡 中 但这与CardL
  • 无法访问“不安全”java方法的java表达式语言

    我正在开发一个项目 让用户向服务器提交小 脚本 然后我将执行这些脚本 有很多脚本语言可以嵌入到Java程序中 例如mvel ognl uel clojure rhino javascript等 但是 据我所知 它们都允许脚本编写者调用Jav
  • JUnit5 平台启动器 API - 如果没有至少一个测试引擎,则无法创建启动器

    我正在尝试升级我们的自动化测试套件的测试能力以接受 JUnit5 测试并遵循JUnit 平台启动器 API 说明 https junit org junit5 docs current user guide launcher api我收到错
  • 如何在 MSSQL 中获取 CURRENT_DATE?

    我正在使用 jpa 3 o 和 Hibernate 我有一个命名查询 SELECT COUNT wt id FROM WPSTransaction wt WHERE wt createdDate gt CURRENT DATE WPSTra
  • JavaFX使节点覆盖父节点边框颜色

    我有一个如下所示的节点 仅使用 css 我希望标签覆盖其父边框颜色 因此标签下方的边框颜色部分变得不可见 我用来制作这个边框的CSS代码 fx border color black fx border width 3 fx border r
  • 确定序列化对象的类型

    我需要通过套接字发送消息 从用户到引擎的请求 以及从引擎到用户的响应 所以流程本质上是 serialized request Server lt network gt Client serialized response request r
  • 具有 JPA 持久性的 Spring 状态机 - 存储库使用

    我试图弄清楚如何轻松使用 Spring 状态机 包括使用 JPA 进行持久化 这是我正在处理的问题 不兼容的数据类型 工厂和持久性 在程序的某个时刻 我想使用连接到用户的状态机 有用于此目的的存储库 项目spring statemachin
  • 在带有 Protocol Buffers 的项目中使用 Proguard 有什么特点?

    我有一个使用 Google Protocol Buffers 的项目 一旦我尝试用 ProGuard 对其进行混淆 似乎 protobuf 会导致问题 我将所有自己的类打包成mybuildedclasses jar 谷歌代码被打包成prot
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 为什么无法从 WEB-INF 文件夹内加载 POSModel 文件?

    我在我的 Web 项目中使用 Spring MVC 我将模型文件放在 WEB INF 目录中 String taggerModelPath WEB INF lib en pos maxent bin String chunkerModelP
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • 如何使用Gson仅从Json反序列化某些特定字段?

    我有以下 JSON 字符串 channel bvmt initValues data value instrumentIds TN0007250012 TN0007500010 instruments mnemonic ADWYA marc
  • Android UnityPlayerActivity 操作栏

    我正在构建一个 Android 应用程序 其中包含 Unity 3d 交互体验 我已将 Unity 项目导入 Android Studio 但启动时该 Activity 是全屏的 并且不显示 Android 操作栏 我怎样才能做到这一点 整
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的
  • Java/MongoDB 按日期查询

    我将一个值作为 java util Date 存储在我的集合中 但是当我查询以获取两个特定日期之间的值时 我最终得到的值超出了范围 这是我的代码 插入 BasicDBObject object new BasicDBObject objec
  • Java中单例的其他方式[重复]

    这个问题在这里已经有答案了 只是我在考虑编写单例类的其他方法 那么这个类是否被认为是单例类呢 public class MyClass static Myclass myclass static myclass new MyClass pr
  • mybatis:使用带有 XML 配置的映射器接口作为全局参数

    我喜欢使用 XML 表示法来指定全局参数 例如连接字符串 我也喜欢 Mapper 注释 当我尝试将两者结合起来时 我得到这个例外 https stackoverflow com questions 4263832 type interfac
  • java中void的作用是什么?

    返回类型 方法返回值的数据类型 如果方法不返回值 则返回 void http download oracle com javase tutorial java javaOO methods html http download oracle

随机推荐

  • string类的模拟实现

    namespace swx string需要考虑完善的增删查改 class string public typedef char iterator typedef const char const iterator const iterat
  • git 生成ssh key操作

    1 在终端输入 ssh keygen t rsa C taoxx 注 username为你git上的用户名 如果执行成功 返回 Generating public private rsa key pair Enter file in whi
  • 【java】【SSM框架系列】【五】【完】MyBatisPlus

    目录 一 MyBatisPlus简介 1 1 入门案例 1 2 MyBatisPlus概述 二 标准数据层开发 2 1 标准数据层CRUD功能 2 1 1 标准数据层CRUD功能 2 1 2 lombok 2 2 分页功能 2 3 开启My
  • 老曹眼中的CRM 图解

    CRM 是企业 以客户为中心 价值观的核心体现之一 各种2B的应用都无可避免 而企业应用具有一定的复杂性 理解CRM系统也不是轻而易举的事情 在老码农的眼中 CRM 系统可能是这样的 业务组成 业务单元的组成是第一位 业务单元是企业的实在需
  • 1496. Path Crossing

    typedef pair
  • 【OpenGL】OpenGL入门之纹理(Texture)

    目录 纹理 纹理环绕方式 纹理过滤 多级渐远纹理 Mipmap 加载与创建纹理 stb image h 生成纹理 应用纹理 纹理单元 参考 纹理 在此之前 我们已经可以为每个顶点添加颜色来增加图形的细节 从而创建出有趣的图像 但是 如果想让
  • 基于uiautomator的android脚本录制记录

    最近有个项目大概需求是 根据服务端发送的指令 去执行一些特定的操作采集数据后并上传给服务器 前后搞了10来天 总算是搞出来了 现在记录下 省的以后忘记 给以后有类似需求的小伙伴多点资料 有啥问题可以联系我QQ 442947949 带上备注
  • 函数的返回值-接收返回元组函数的方式

    def measure 测量温度和湿度 print 测量开始 temp 39 wetness 50 print 测量结束 元组 可以包含多个数据 因此可以使用元组让函数一次返回多个值 如果函数返回的类型是元组 小括号可以省略 return
  • 在QMap中嵌套QList

    刚接触QT的QMap比较困惑 看这名字以为是二维数组 因为我把QList当作一维数组来用了 事实上也确实可以 但只当一维数组太浪费了 可参考别的资料 cpp view plain copy QMap
  • 面试时,发现公司有这8个现象,建议你慎重考虑

    爱开发 陪伴你一起成长 快年底 相信有不少朋友有跳槽的念头 今天我们来聊一聊面试的一些话题 面试时 我们有机会对公司的情况做一下了解 比如和面试官交流 我们大致能了解到公司的一些基本情况 这些情况比我们在去面试前更为准确 程序员面试时 发现
  • Spark RDD之Key-Value类型操作详解

    partitionBy案例 1 作用 对pairRDD进行分区操作 如果原有的partionRDD和现有的partionRDD是一致的话就不进行分区 否则会生成ShuffleRDD 即会产生shuffle过程 2 需求 创建一个4个分区的R
  • 了解链接是什么?

    链接是将各种代码和数据片段收集并且组合成为一个单一文件的过程 这个文件可以被加载到内存并且执行 链接可以执行于编译时 也就是在程序被加载器加载到内存并且执行 甚至在执行于运行的时候 也就是由应用程序来执行 在早期的计算机系统中 链接是手动执
  • OrCAD中DRC的使用简要说明

    OrCAD中DRC的使用简要说明 1 DRC的使用 Scope entire 检查所有设计 selection 检查选中部分 Mode 理解Mode需要先理解instance 实例 和occurrences 事件 这是OrCAD中非常重要的
  • 单元测试框架(JUnit和Unittest)

    单元测试就是针对最小功能单元编写测试代码 1 JUnit Unit 是一个 Java编程语言的单元测试框架 java程序最小的功能是方法 单元测试就是针对java方法的测试 测试单元中的每个方法必须可以独立测试 方法间不能有任何依赖 1 1
  • 浅谈多路复用select、epoll

    一 多路复用技术 在理解多路复用之前了解一下IO阻塞 IO非阻塞有利于理解IO多路复用 可以想象成父进程为董事长 其雇佣秘书 内核 帮助你监听读写缓冲区 常见的有select poll epoll 这里只谈一下select和epoll po
  • 【持续更新中】Unity常见问题及其解决

    目录 导出游戏时需要选择空的文件夹 CS0103错误 使用的变量名或者方法名并不存在于当前上下文中 CS1061错误 尝试调用方法或访问不存在的类成员 Unity怎么点都没反应 可能是进入了死循环 CS0428错误 类型转换错误 CS165
  • 编写自己的springboot starter

    一 编写自己的springboot starter 可能已经过时了 仅建议参考 引入对应的依赖 编写实现类 编写配置文件读取类 主要注解是 ConfigruationProperties 配置的值例如 example a 编写自动装配类 编
  • 《Deep Residual Learning for Image Recognition》论文学习

    Deep Residual Learning for Image Recognition 文章地址 Deep Residual Learning for Image Recognition arXiv 1512 03385 ResNet G
  • 【华为OD统一考试B卷

    在线OJ 已购买本专栏用户 请私信博主开通账号 在线刷题 运行出现 Runtime Error 0Aborted 请忽略 华为OD统一考试A卷 B卷 新题库说明 2023年5月份 华为官方已经将的 2022 0223Q 1 2 3 4 统一
  • 利用SpringBoot简单快速搭建WEB项目入门

    我们在WEB应用开发过程中 我们常常用到的语言是JAVA语言 作为WEB应用中的霸主级别中 的存在 却常常被嘲讽 人生苦短 我用python 是python程序员们引以为傲的格言 人们经常 将JAVA与时代新宠Python作比较 至今网上还