Spring boot快速入门

项目相关系列 专栏收录该内容
16 篇文章 0 订阅

Spring Boot【快速入门】

        </h1>
        <div class="clear"></div>
        <div class="postBody">

未获得良好的阅读体验,请访问原文地址:传送门

Spring Boot 概述

Build Anything with Spring Boot:Spring Boot is the starting point for building all Spring-based applications. Spring Boot is designed to get you up and running as quickly as possible, with minimal upfront configuration of Spring.

上面是引自官网的一段话,大概是说: Spring Boot 是所有基于 Spring 开发的项目的起点。Spring Boot 的设计是为了让你尽可能快的跑起来 Spring 应用程序并且尽可能减少你的配置文件。

什么是 Spring Boot

  • 它使用 “习惯优于配置” (项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须)的理念让你的项目快速运行起来。
  • 它并不是什么新的框架,而是默认配置了很多框架的使用方式,就像 Maven 整合了所有的 jar 包一样,Spring Boot 整合了所有框架(引自:springboot(一):入门篇——纯洁的微笑

使用 Spring Boot 有什么好处

回顾我们之前的 SSM 项目,搭建过程还是比较繁琐的,需要:

  • 1)配置 web.xml,加载 spring 和 spring mvc
  • 2)配置数据库连接、配置日志文件
  • 3)配置家在配置文件的读取,开启注解
  • 4)配置mapper文件
  • .....

而使用 Spring Boot 来开发项目则只需要非常少的几个配置就可以搭建起来一个 Web 项目,并且利用 IDEA 可以自动生成生成,这简直是太爽了...

  • 划重点:简单、快速、方便地搭建项目;对主流开发框架的无配置集成;极大提高了开发、部署效率。

Spring Boot 快速搭建

第一步:新建项目

选择 Spring Initializr ,然后选择默认的 url 点击【Next】:

然后修改一下项目的信息:

勾选上 Web 模板:

选择好项目的位置,点击【Finish】:

如果是第一次配置 Spring Boot 的话可能需要等待一会儿 IDEA 下载相应的 依赖包,默认创建好的项目结构如下:

项目结构还是看上去挺清爽的,少了很多配置文件,我们来了解一下默认生成的有什么:

  • SpringbootApplication: 一个带有 main() 方法的类,用于启动应用程序
  • SpringbootApplicationTests:一个空的 Junit 测试了,它加载了一个使用 Spring Boot 字典配置功能的 Spring 应用程序上下文
  • application.properties:一个空的 properties 文件,可以根据需要添加配置属性
  • pom.xml: Maven 构建说明文件

第二步:HelloController

在【cn.wmyskxz.springboot】包下新建一个【HelloController】:

package cn.wmyskxz.springboot;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

/**

  • 测试控制器

  • @author: @我没有三颗心脏

  • @create: 2018-05-08-下午 16:46
    */
    @RestController
    public class HelloController {

    @RequestMapping("/hello")
    public String hello() {
    returnHello Spring Boot!”;
    }
    }

  • @RestController 注解: 该注解是 @Controller 和 @ResponseBody 注解的合体版

第三步:利用 IDEA 启动 Spring Boot

我们回到 SpringbootApplication 这个类中,然后右键点击运行:

  • 注意:我们之所以在上面的项目中没有手动的去配置 Tomcat 服务器,是因为 Spring Boot 内置了 Tomcat

等待一会儿就会看到下方的成功运行的提示信息:

可以看到我们的 Tomcat 运行在 8080 端口,我们来访问 “/hello” 地址试一下:

可以看到页面成功显示出我们返回的信息。


解析 Spring Boot 项目

这一部分参考自:Spring Boot干货系列(一)优雅的入门篇 ——嘟嘟独立博客

解析 pom.xml 文件

让我们来看看默认生成的 pom.xml 文件中到底有一些什么特别:

<?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>
<span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>cn.wmyskxz<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>springboot<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>0.0.1-SNAPSHOT<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">packaging</span>&gt;</span>jar<span class="hljs-tag">&lt;/<span class="hljs-name">packaging</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">name</span>&gt;</span>springboot<span class="hljs-tag">&lt;/<span class="hljs-name">name</span>&gt;</span>
<span class="hljs-tag">&lt;<span class="hljs-name">description</span>&gt;</span>Demo project for Spring Boot<span class="hljs-tag">&lt;/<span class="hljs-name">description</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">parent</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-starter-parent<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">version</span>&gt;</span>2.0.1.RELEASE<span class="hljs-tag">&lt;/<span class="hljs-name">version</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">relativePath</span>/&gt;</span> <span class="hljs-comment">&lt;!-- lookup parent from repository --&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">parent</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">properties</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">project.build.sourceEncoding</span>&gt;</span>UTF-8<span class="hljs-tag">&lt;/<span class="hljs-name">project.build.sourceEncoding</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">project.reporting.outputEncoding</span>&gt;</span>UTF-8<span class="hljs-tag">&lt;/<span class="hljs-name">project.reporting.outputEncoding</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">java.version</span>&gt;</span>1.8<span class="hljs-tag">&lt;/<span class="hljs-name">java.version</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">properties</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">dependencies</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-starter-web<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>

    <span class="hljs-tag">&lt;<span class="hljs-name">dependency</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-starter-test<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">scope</span>&gt;</span>test<span class="hljs-tag">&lt;/<span class="hljs-name">scope</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">dependency</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">dependencies</span>&gt;</span>

<span class="hljs-tag">&lt;<span class="hljs-name">build</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-name">plugins</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-name">plugin</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag">&lt;/<span class="hljs-name">groupId</span>&gt;</span>
            <span class="hljs-tag">&lt;<span class="hljs-name">artifactId</span>&gt;</span>spring-boot-maven-plugin<span class="hljs-tag">&lt;/<span class="hljs-name">artifactId</span>&gt;</span>
        <span class="hljs-tag">&lt;/<span class="hljs-name">plugin</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-name">plugins</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-name">build</span>&gt;</span>

</project>

我们可以看到一个比较陌生一些的标签 <parent> ,这个标签是在配置 Spring Boot 的父级依赖:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.1.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

有了这个,当前的项目才是 Spring Boot 项目,spring-boot-starter-parent 是一个特殊的 starter ,它用来提供相关的 Maven 默认依赖,使用它之后,常用的包依赖就可以省去 version 标签。

关于具体 Spring Boot 提供了哪些 jar 包的依赖,我们可以查看本地 Maven 仓库下:\repository\org\springframework\boot\spring-boot-dependencies\2.0.1.RELEASE\spring-boot-dependencies-2.0.1.RELEASE.pom 文件来查看,挺长的...

应用入口类

Spring Boot 项目通常有一个名为 *Application 的入口类,入口类里有一个 main 方法, 这个 main 方法其实就是一个标准的 Javay 应用的入口方法。

@SpringBootApplication 是 Spring Boot 的核心注解,它是一个组合注解,该注解组合了:@Configuration、@EnableAutoConfiguration、@ComponentScan; 若不是用 @SpringBootApplication 注解也可以使用这三个注解代替。

  • 其中,@EnableAutoConfiguration 让 Spring Boot 根据类路径中的 jar 包依赖为当前项目进行自动配置,例如,添加了 spring-boot-starter-web 依赖,会自动添加 Tomcat 和 Spring MVC 的依赖,那么 Spring Boot 会对 Tomcat 和 Spring MVC 进行自动配置。
  • Spring Boot 还会自动扫描 @SpringBootApplication 所在类的同级包以及下级包里的 Bean ,所以入口类建议就配置在 grounpID + arctifactID 组合的包名下(这里为 cn.wmyskxz.springboot 包)

Spring Boot 的配置文件

Spring Boot 使用一个全局的配置文件 application.properties 或 application.yml,放置在【src/main/resources】目录或者类路径的 /config 下。

Spring Boot 不仅支持常规的 properties 配置文件,还支持 yaml 语言的配置文件。yaml 是以数据为中心的语言,在配置数据的时候具有面向对象的特征。

Spring Boot 的全局配置文件的作用是对一些默认配置的配置值进行修改。

  • 简单实例一下

我们同样的将 Tomcat 默认端口设置为 8080 ,并将默认的访问路径从 “/” 修改为 “/hello” 时,使用 properties 文件和 yml 文件的区别如上图。

  • 注意: yml 需要在 “:” 后加一个空格,幸好 IDEA 很好地支持了 yml 文件的格式有良好的代码提示;
  • 我们可以自己配置多个属性

我们直接把 .properties 后缀的文件删掉,使用 .yml 文件来进行简单的配置,然后使用 @Value 来获取配置属性:

重启 Spring Boot ,输入地址:localhost:8080/hello 能看到正确的结果:

  • 注意: 我们并没有在 yml 文件中注明属性的类型,而是在使用的时候定义的。

你也可以在配置文件中使用当前配置:

仍然可以得到正确的结果:

  • 问题: 这样写配置文件繁琐而且可能会造成类的臃肿,因为有许许多多的 @Value 注解。
  • 封装配置信息

我们可以把配置信息封装成一个类,首先在我们的 name 和 age 前加一个 student 前缀,然后新建一个 StudentProperties 的类用来封装这些信息,并用上两个注解:

  • @Component:表明当前类是一个 Java Bean
  • @ConfigurationProperties(prefix = "student"):表示获取前缀为 sutdent 的配置信息

这样我们就可以在控制器中使用,重启得到正确信息:

Spring Boot 热部署

在目前的 Spring Boot 项目中,当发生了任何修改之后我们都需要重新启动才能够正确的得到效果,这样会略显麻烦,Spring Boot 提供了热部署的方式,当发现任何类发生了改变,就会通过 JVM 类加载的方式,加载最新的类到虚拟机中,这样就不需要重新启动也能看到修改后的效果了。

  • 做法也很简单,修改 pom.xml 即可!

我们往 pom.xml 中添加一个依赖就可以了:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <optional>true</optional> <!-- 这个需要为 true 热部署才有效 -->
</dependency>

重新启动 Spring Boot ,然后修改任意代码,就能观察到控制台的自动重启现象:

关于如何在 IDEA 中配置热部署:传送门


Spring Boot 使用

上面已经完成了 Spring Boot 项目的简单搭建,我们仅仅需要进行一些简单的设置,写一个 HelloController 就能够直接运行了,不要太简单...接下来我们再深入了解一下 Spring Boot 的使用。

Spring Boot 支持 JSP

Spring Boot 的默认视图支持是 Thymeleaf 模板引擎,但是这个我们不熟悉啊,我们还是想要使用 JSP 怎么办呢?

  • 第一步:修改 pom.xml 增加对 JSP 文件的支持
<!-- servlet依赖. -->
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>

<!-- tomcat的支持.–>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

  • 第二步:配置试图重定向 JSP 文件的位置

修改 application.yml 文件,将我们的 JSP 文件重定向到 /WEB-INF/views/ 目录下:

  • 第三步:修改 HelloController

修改 @RestController 注解为 @Controller ,然后将 hello 方法修改为:

  • 第四步:新建 hello.jsp 文件

在【src/main】目录下依次创建 webapp、WEB-INF、views 目录,并创建一个 hello.jsp 文件:

  • 第五步:刷新网页

因为我们部署了热部署功能,所以只需要等待控制台重启信息完成之后再刷新网页就可以看到正确效果了:

  • 关于 404,使用 spring-boot:run 运行项目可以解决:

集成 MyBatis

  • 第一步:修改 pom.xml 增加对 MySql和 MyBatis 的支持
 
<!-- mybatis -->
<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>1.1.1</version>
</dependency>
<!-- mysql -->
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.21</version>
</dependency>
  • 第二步:新增数据库链接参数

这里我们就直接使用之前创建好的 student 表了吧:

  • 第三步:创建 Student 实体类和 StudentMapper 映射类

在【cn.wmyskxz.springboot】下新建一个【pojo】包,然后在其下创建一个 Student 类:

public class Student {
<span class="hljs-keyword">private</span> Integer id;
<span class="hljs-keyword">private</span> Integer student_id;
<span class="hljs-keyword">private</span> <span class="hljs-built_in">String</span> name;
<span class="hljs-keyword">private</span> Integer age;
<span class="hljs-keyword">private</span> <span class="hljs-built_in">String</span> sex;
<span class="hljs-keyword">private</span> <span class="hljs-built_in">Date</span> birthday;

/* getter <span class="hljs-keyword">and</span> setter */

}

在【cn.wmyskxz.springboot】下新建一个【mapper】包,然后在其下创建一个 StudentMapper 映射类:

package cn.wmyskxz.springboot.mapper;

import cn.wmyskxz.springboot.pojo.Student;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface StudentMapper {

<span class="hljs-meta">@Select</span>(<span class="hljs-string">"SELECT * FROM student"</span>)
<span class="hljs-function">List&lt;Student&gt; <span class="hljs-title">findAll</span><span class="hljs-params">()</span></span>;

}

  • 第四步:编写 StudentController

在【cn.wmyskxz.springboot】下新建一个【controller】包,然后在其下创建一个 StudentController :

package cn.wmyskxz.springboot.controller;

import cn.wmyskxz.springboot.mapper.StudentMapper;
import cn.wmyskxz.springboot.pojo.Student;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

/**

  • Student 控制器

  • @author: @我没有三颗心脏

  • @create: 2018-05-08-下午 20:25
    */
    @Controller
    public class StudentController {

    @Autowired
    StudentMapper studentMapper;

    @RequestMapping("/listStudent")
    public String listStudent(Model model) {
    List<Student> students = studentMapper.findAll();
    model.addAttribute(“students”, students);
    return “listStudent”;
    }
    }

第五步:编写 listStudent.jsp 文件

我们简化一下 JSP 的文件,仅显示两个字段的数据:

<%@ page language="java" contentType="text/html; charset=UTF-8"
         pageEncoding="UTF-8"%>

<%@ taglib uri=“http://java.sun.com/jsp/jstl/core” prefix=“c”%>

<table align=‘center’ border=‘1’ cellspacing=‘0’>
<tr>
<td>id</td>
<td>name</td>
</tr>
<c:forEach items="KaTeX parse error: Expected 'EOF', got '&' at position 170: …ng">"st"</span>&̲gt;</span> …{s.id}</td>
<td>${s.name}</td>
</tr>
</c:forEach>
</table>

  • 第六步:重启服务器运行

因为往 pom.xml 中新增加了依赖的包,所以自动重启服务器没有作用,我们需要手动重启一次,然后在地址输入:localhost:8080/listStudent 查看效果:

以上。


参考资料:

how2j.cn-Spring Boot 系列教程

欢迎转载,转载请注明出处!
简书ID:@我没有三颗心脏
github:wmyskxz
欢迎关注公众微信号:wmyskxz_javaweb
分享自己的Java Web学习之路以及各种Java学习资料

分类: Java Web
<div id="blog_post_info">
64
0
<div class="clear"></div>
<div id="post_next_prev">

<a href="https://www.cnblogs.com/wmyskxz/p/9005147.html" class="p_n_p_prefix">« </a> 上一篇:    <a href="https://www.cnblogs.com/wmyskxz/p/9005147.html" title="发布于 2018-05-07 21:42">模仿天猫实战【SSM】——总结</a>
<br>
<a href="https://www.cnblogs.com/wmyskxz/p/9016611.html" class="p_n_p_prefix">» </a> 下一篇:    <a href="https://www.cnblogs.com/wmyskxz/p/9016611.html" title="发布于 2018-05-09 21:00">Java 面试知识点解析(一)——基础知识篇</a>
posted @ 2018-05-08 20:41  我没有三颗心脏 阅读( 380028) 评论( 77) 编辑 收藏
</div><!--end: topics 文章、评论容器-->
<div class="pager">
    <!-- 上一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        &lt; Prev
    </a>

    <!-- 第一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        1
    </a>

    <!-- 前半部分页码 -->
    

    <!-- 当前页 -->
    <span class="current">2</span>

    <!-- 后半部分页码 -->

    
    <!-- 末尾页 -->
    

    <!-- 下一页 -->
    
</div>

  
回复 引用
			</div>

#51楼

2019-06-27 17:34

        <a id="a_comment_author_4288879" href="https://www.cnblogs.com/wslbl/" target="_blank">海纳百川ws</a>

		</div>
		<div class="feedbackCon">
访问jsp直接404了,springboot-run也不起作用
https://pic.cnblogs.com/face/1268693/20180410094208.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#52楼

[楼主]

2019-06-28 07:56

        <a id="a_comment_author_4289073" href="https://www.cnblogs.com/wmyskxz/" target="_blank">我没有三颗心脏</a>

		</div>
		<div class="feedbackCon">
@ 海纳百川ws
看看是不是 Tomcat 配置有问题,还有包都正确引入进来了嘛?
https://pic.cnblogs.com/face/1120515/20190803200008.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#53楼

2019-06-28 14:19

        <a id="a_comment_author_4289367" href="https://www.cnblogs.com/wslbl/" target="_blank">海纳百川ws</a>

		</div>
		<div class="feedbackCon">
@ 我没有三颗心脏
tomcat那个scope要注释掉才可以通过main方法启动访问jsp,现在springboot-run也能用了。
https://pic.cnblogs.com/face/1268693/20180410094208.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#54楼

2019-08-16 10:34

        <a id="a_comment_author_4328245" href="https://home.cnblogs.com/u/1770510/" target="_blank">被代码耽误的厨子</a>

		</div>
		<div class="feedbackCon">
感谢博主的优秀文章,补充一点填坑经历,JDBC的驱动名称用com.mysql.jdbc.Driver已经行不通了,最新的要用com.mysql.cj.jdbc.Driver,版本8.0.17
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#55楼

2019-08-20 11:05

        <a id="a_comment_author_4331500" href="https://www.cnblogs.com/yzbhf/" target="_blank">燕子不会飞</a>

		</div>
		<div class="feedbackCon">
yml配置时编码不对,怎么解决啊
使用properties时可以,网上查了很多解决办法,也不行
https://pic.cnblogs.com/face/1758929/20190802103428.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#56楼

2019-08-20 22:35

        <a id="a_comment_author_4332237" href="https://home.cnblogs.com/u/1774304/" target="_blank">_faye</a>

		</div>
		<div class="feedbackCon">
@ 燕子不会飞
yml页面右键-》file encoding 选择utf-8
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#57楼

2019-08-21 10:04

        <a id="a_comment_author_4332407" href="https://www.cnblogs.com/yzbhf/" target="_blank">燕子不会飞</a>

		</div>
		<div class="feedbackCon">
@ _faye
解决了,谢谢大佬
https://pic.cnblogs.com/face/1758929/20190802103428.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#58楼

2019-08-21 10:16

        <a id="a_comment_author_4332424" href="https://www.cnblogs.com/yzbhf/" target="_blank">燕子不会飞</a>

		</div>
		<div class="feedbackCon">
求教大神,导入包的不显示错误,pom文件没有报错,就是在查看依赖时有红色的波浪线,不影响程序运行,这是什么原因
https://pic.cnblogs.com/face/1758929/20190802103428.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#59楼

2019-08-21 17:12

        <a id="a_comment_author_4332917" href="https://home.cnblogs.com/u/1775103/" target="_blank">3211</a>

		</div>
		<div class="feedbackCon">
超级感谢!!!
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#60楼

[楼主]

2019-08-22 07:31

        <a id="a_comment_author_4333277" href="https://www.cnblogs.com/wmyskxz/" target="_blank">我没有三颗心脏</a>

		</div>
		<div class="feedbackCon">
@ 3211
能受用真是太好了
https://pic.cnblogs.com/face/1120515/20190803200008.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#61楼

2019-08-28 08:09

        <a id="a_comment_author_4338368" href="https://home.cnblogs.com/u/396431/" target="_blank">adarzhang</a>

		</div>
		<div class="feedbackCon">
文中配置的声明的使用mybatis,配置中却使用的是hibernate,搞错了吧。不过这确实是一片很好的入门文章,赞一个!
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#62楼

2019-09-18 15:40

        <a id="a_comment_author_4360738" href="https://www.cnblogs.com/youlike/" target="_blank">、一曲相思</a>

		</div>
		<div class="feedbackCon">
添加一点楼主没有提到的,页面使用jsp的时候要配置前置和后置,要在main下面先建一个webapp文件夹再建jsp文件夹放置jsp文件,这里必须是webapp文件夹,换成其他会报错/WEB-INF/jsp/xxx.jsp
https://pic.cnblogs.com/face/1541601/20190918154507.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#63楼

2019-09-27 17:04

        <a id="a_comment_author_4373235" href="https://home.cnblogs.com/u/1819956/" target="_blank">我的代码可以run</a>

		</div>
		<div class="feedbackCon">
为什么我的运行不报错,就是不显示数据呢?
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#64楼

2019-10-02 14:51

        <a id="a_comment_author_4377176" href="https://home.cnblogs.com/u/1715726/" target="_blank">微澜蓝</a>

		</div>
		<div class="feedbackCon">
文章很棒!很详细
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#65楼

2019-10-02 14:51

        <a id="a_comment_author_4377177" href="https://home.cnblogs.com/u/1715726/" target="_blank">微澜蓝</a>

		</div>
		<div class="feedbackCon">
文章很棒!很详细
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#66楼

2019-10-02 14:51

        <a id="a_comment_author_4377178" href="https://home.cnblogs.com/u/1715726/" target="_blank">微澜蓝</a>

		</div>
		<div class="feedbackCon">
文章很棒!很详细
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#67楼

2019-10-02 14:51

        <a id="a_comment_author_4377179" href="https://home.cnblogs.com/u/1715726/" target="_blank">微澜蓝</a>

		</div>
		<div class="feedbackCon">
文章很棒!很详细
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#68楼

[楼主]

2019-10-02 15:57

        <a id="a_comment_author_4377223" href="https://www.cnblogs.com/wmyskxz/" target="_blank">我没有三颗心脏</a>

		</div>
		<div class="feedbackCon">
@ 微澜蓝
感谢支持~
https://pic.cnblogs.com/face/1120515/20190803200008.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#69楼

2019-10-09 12:41

        <a id="a_comment_author_4383446" href="https://home.cnblogs.com/u/1043506/" target="_blank">t812206236</a>

		</div>
		<div class="feedbackCon">
看完并实现,打卡1
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#70楼

2019-10-12 09:47

        <a id="a_comment_author_4387001" href="https://home.cnblogs.com/u/1831244/" target="_blank">you8642</a>

		</div>
		<div class="feedbackCon">
@ DanBrown
我也遇到你一样的问题,但是我把MapperScan加进去之后为什么还是提示同样的问题,这行代码加进去没起到作用
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#71楼

2019-10-12 09:52

        <a id="a_comment_author_4387011" href="https://home.cnblogs.com/u/1831244/" target="_blank">you8642</a>

		</div>
		<div class="feedbackCon">
@ t812206236
你有找不到Mapper注入的问题吗?
Field studentMapper in com.egoo.springboot.controller.StudentController required a bean of type 'com.egoo.springboot.mapper.StudentMapper' that could not be found.
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#72楼

[楼主]

2019-10-12 10:54

        <a id="a_comment_author_4387128" href="https://www.cnblogs.com/wmyskxz/" target="_blank">我没有三颗心脏</a>

		</div>
		<div class="feedbackCon">
@ you8642
是不是少注解?
https://pic.cnblogs.com/face/1120515/20190803200008.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#73楼

2019-10-12 12:12

        <a id="a_comment_author_4387293" href="https://home.cnblogs.com/u/1043506/" target="_blank">t812206236</a>

		</div>
		<div class="feedbackCon">
@ you8642
首先你要保证你的interface被扫描了,在application中配置,其次你的sqlmapper.xml文件要在yml中被指定,还有pojo位置的指定,都确保有并正确了应该就可以了
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#74楼

2019-10-23 11:57

        <a id="a_comment_author_4401124" href="https://www.cnblogs.com/nc1904/" target="_blank">nc明了</a>

		</div>
		<div class="feedbackCon">
@ 被代码耽误的厨子
是数据库版本高的原因吗?
https://pic.cnblogs.com/face/1196046/20170708005905.png
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#75楼

2019-10-24 13:10

        <a id="a_comment_author_4402591" href="https://www.cnblogs.com/daihu/" target="_blank">anderson_1996</a>

		</div>
		<div class="feedbackCon">
感谢!
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#76楼

2019-10-29 14:57

        <a id="a_comment_author_4408064" href="https://home.cnblogs.com/u/1474493/" target="_blank">纷纷暮雪春风来</a>

		</div>
		<div class="feedbackCon">
这篇真的棒!!!
		</div>
	</div>
	<div class="feedbackItem">
		<div class="feedbackListSubtitle">
			<div class="feedbackManage">
				&nbsp;&nbsp;
回复 引用
			</div>

#77楼

[楼主]
4408413
2019/10/29 下午7:20:57

2019-10-29 19:20

        <a id="a_comment_author_4408413" href="https://www.cnblogs.com/wmyskxz/" target="_blank">我没有三颗心脏</a>

		</div>
		<div class="feedbackCon">
@ 纷纷暮雪春风来
感谢支持~
https://pic.cnblogs.com/face/1120515/20190803200008.png
		</div>
	</div>
<div class="pager">
    <!-- 上一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        &lt; Prev
    </a>

    <!-- 第一页 -->
    <a href="#!comments" onclick="commentManager.renderComments(1, 50); return false;">
        1
    </a>

    <!-- 前半部分页码 -->
    

    <!-- 当前页 -->
    <span class="current">2</span>

    <!-- 后半部分页码 -->

    
    <!-- 末尾页 -->
    

    <!-- 下一页 -->
    
</div>
    <div id="google_ads_iframe_/1090369/C2_0__container__" style="border: 0pt none;"><iframe id="google_ads_iframe_/1090369/C2_0" title="3rd party ad content" name="google_ads_iframe_/1090369/C2_0" width="468" height="60" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" srcdoc="" data-google-container-id="2" data-load-complete="true" style="border: 0px; vertical-align: bottom;"></iframe></div></div>
</div>
<div id="under_post_kb">
  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 扫一扫,分享海报

<div style=&quot;color:rgba(0,0,0,.75);&quot;> <span style=&quot;color:#4d4d4d;&quot;> </span> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <span style=&quot;color:#4d4d4d;&quot;> </span> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <span style=&quot;color:#4d4d4d;&quot;>当前课程中商城项目的实战源码是我发布在 GitHub 上的开源项目 newbee-mall (新蜂商城),目前已有 6300 多个 star,</span><span style=&quot;color:#4d4d4d;&quot;>本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 商城项目功能的讲解,让大家实际操作并实践上手一个大型的线上商城项目,并学习到一定的开发经验以及其中的开发技巧。<br /> 商城项目所涉及的功能结构图整理如下:<br /> </span> </div> <div style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </div> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <p style=&quot;color:#4d4d4d;&quot;> <img alt=&quot;modules&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3N0b3JlL25ld2JlZS1tYWxsLXMucG5n?x-oss-process=image/format,png&quot; /> </p> </div> <p style=&quot;color:rgba(0,0,0,.75);&quot;> <strong><span style=&quot;color:#e53333;&quot;>课程特色</span></strong> </p> <p style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </p> <div style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </div> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <ul> <li> 对新手开发者十分友好,无需复杂的操作步骤,仅需 2 秒就可以启动这个完整的商城项目 </li> <li> 最终的实战项目是一个企业级别的 Spring Boot 大型项目,对于各个阶段的 Java 开发者都是极佳的选择 </li> <li> 实践项目页面美观且实用,交互效果完美 </li> <li> 教程详细开发教程详细完整、文档资源齐全 </li> <li> 代码+讲解+演示网站全方位保证,向 Hello World 教程说拜拜 </li> <li> 技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,可以进一步提升你的市场竞争力 </li> </ul> </div> <p style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </p> <p style=&quot;color:rgba(0,0,0,.75);&quot;> <span style=&quot;color:#e53333;&quot;>课程预览</span> </p> <p style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </p> <div style=&quot;color:rgba(0,0,0,.75);&quot;> &nbsp; </div> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <p style=&quot;color:#4d4d4d;&quot;> 以下为商城项目的页面和功能展示,分别为: </p> </div> <div style=&quot;color:rgba(0,0,0,.75);&quot;> <ul> <li> 商城首页 1<br /> <img alt=&quot;&quot; src=&quot;https://img-bss.csdnimg.cn/202103050347585499.gif&quot; /> </li> <li> 商城首页 2<br /> <img alt=&quot;&quot; src=&quot;https://img-bss.csdn.net/202005181054413605.png&quot; /> </li> <li> &nbsp; </li> <li> 购物车<br /> <img alt=&quot;cart&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvY2FydC5wbmc?x-oss-process=image/format,png&quot; /> </li> <li> 订单结算<br /> <img alt=&quot;settle&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvc2V0dGxlLnBuZw?x-oss-process=image/format,png&quot; /> </li> <li> 订单列表<br /> <img alt=&quot;orders&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3Qvb3JkZXJzLnBuZw?x-oss-process=image/format,png&quot; /> </li> <li> 支付页面<br /> <img alt=&quot;&quot; src=&quot;https://img-bss.csdn.net/201909280301493716.jpg&quot; /> </li> <li> 后台管理系统登录页<br /> <img alt=&quot;login&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWxvZ2luLnBuZw?x-oss-process=image/format,png&quot; /> </li> <li> 商品管理<br /> <img alt=&quot;goods&quot; src=&quot;https://imgconvert.csdnimg.cn/aHR0cHM6Ly9uZXdiZWUtbWFsbC5vc3MtY24tYmVpamluZy5hbGl5dW5jcy5jb20vcG9zdGVyL3Byb2R1Y3QvbWFuYWdlLWdvb2RzLnBuZw?x-oss-process=image/format,png&quot; /> </li> <li> 商品编辑<br /> <img alt=&quot;&quot; src=&quot;https://img-bss.csdnimg.cn/202103050348242799.png&quot; /> </li> </ul> </div> </div> </div> </div>
参与评论 您还未登录,请先 登录 后发表或查看评论
<p> <span style=&quot;color:#4d4d4d;&quot;>当前课程中博客项目的实战源码是我在 GitHub上开源项目 My-Blog,目前已有 2000 多个 star:</span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><img src=&quot;https://img-bss.csdnimg.cn/202103310649344285.png&quot; alt=&quot;&quot; /><br /> </span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;>本课程是一个 Spring Boot 技术栈的实战类课程,课程共分为 3 大部分,前面两个部分为基础环境准备和相关概念介绍,第三个部分是 Spring Boot 个人博客项目功能的讲解,<span style=&quot;color:#565656;&quot;>通过本课程的学习,不仅仅让你掌握基本的 Spring Boot 开发能力以及 Spring Boot 项目的大部分开发使用场景,同时帮你提前甄别和处理掉将要遇到的技术难点,认真学完这个课程后,你将会对 Spring Boot 有更加深入而全面的了解,同时你也会得到一个大家都在使用的博客系统源码,你可以根据自己的需求和想法进行改造,也可以直接使用它来作为自己的个人网站,这个课程一定会给你带来巨大的收获。</span></span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><span style=&quot;color:#565656;&quot;>&nbsp;</span></span> </p> <p> <span style=&quot;color:#e53333;&quot;><span style=&quot;color:#e53333;&quot;><strong>课程特色</strong></span></span> </p> <p> <span style=&quot;color:#e53333;&quot;><span style=&quot;color:#e53333;&quot;><strong>&nbsp;</strong></span></span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><span style=&quot;color:#565656;&quot;> </span></span> </p> <ol> <li> <span style=&quot;color:#565656;&quot;>课程内容紧贴 Spring Boot 技术栈,涵盖大部分 Spring Boot 使用场景。</span> </li> <li> <span style=&quot;color:#565656;&quot;>开发教程详细完整、文档资源齐全、实验过程循序渐进简单明了。</span> </li> <li> <span style=&quot;color:#565656;&quot;>实践项目页面美观且实用,交互效果完美。</span> </li> <li> <span style=&quot;color:#565656;&quot;>包含从零搭建项目、以及完整的后台管理系统和博客展示系统两个系统的功能开发流程。</span> </li> <li> <span style=&quot;color:#565656;&quot;>技术栈新颖且知识点丰富,学习后可以提升大家对于知识的理解和掌握,对于提升你的市场竞争力有一定的帮助。</span> </li> </ol> <p> <strong>实战项目预览</strong> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><span style=&quot;color:#565656;&quot;><span style=&quot;color:#e53333;&quot;><strong>&nbsp;</strong></span></span></span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><img src=&quot;https://img-bss.csdn.net/202005150303066258.png&quot; alt=&quot;&quot; /><br /> </span> </p> <p> &nbsp; </p> <p> <span style=&quot;color:#4d4d4d;&quot;>&nbsp;</span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><img src=&quot;https://img-bss.csdn.net/202005150305396930.png&quot; alt=&quot;&quot; /><br /> </span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;>&nbsp;</span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><img src=&quot;https://img-bss.csdn.net/202005150305528842.png&quot; alt=&quot;&quot; /><br /> </span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;>&nbsp;</span> </p> <p> <span style=&quot;color:#4d4d4d;&quot;><img src=&quot;https://img-bss.csdn.net/202005150306056323.png&quot; alt=&quot;&quot; /><br /> </span> </p>
©️2022 CSDN 皮肤主题:技术工厂 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值