首页 > 编程知识 正文

搭建一个简单的springboot项目,怎么建springboot项目

时间:2023-05-06 08:28:23 阅读:204126 作者:1463

之前就接触过springboot作为框架的项目,但是不是我自己搭建的,当时看了一下结构,和spring项目比,springboot采用注解方式简化了配置,废话不多说,咱们就手动搭建一个简单的springboot项目。

注意:现在springboot几个新版本都是基于JDK1.8的,所以我接下来的几篇文章的讲解,也全部围绕JDK1.8来。

我先讲怎么利用eclipse工具常规的创建一个spring项目,考虑到有些小伙伴急切的想创建一个最简单的项目,我会在再讲一种快速创建springboot项目的方式!

 

搭建过SSM框架的小伙伴可能心里有会感受,就是各种配置比较多:spring本身的配置,springMVC的配置,还有jdbc数据源的配置等等,如果没有搭建过SSM框架的小伙伴,建议你自己搜一搜搭建过程,然后有对比性的看springboot的搭建过程,这样有助于学习。

 

一,先创建一个springboot的maven项目

1.这里我是用的工具是eclipse,所以我们要先下载一个插件(STS),HELP---eclipse Marketplace ,search中搜索 STS,结果见下图:

然后点击安装就好了,一路next知道完成。完成后重启一下就好!

 

2.安装好了STS插件,就来创建项目:

在项目空白处右键:new--project,然后搜索spring选择如下:

x

下一步:

注意:一般我们建立web项目,一定要选择war!!!要不然后面自动生成的pom文件中没有spring-boot-starter-web!!

下一步:

选择需要的Dependency,然后点击finish

在这里我选了MySQL 和mybatis和web  三个依赖,然后点击完成。如果是JDBC或者Oracle,你可以自行选择数据库驱动。

等待创建项目,要等一段时间,因为在下载jar。

下面是项目的主要结构:

大家可以打开pom文件,可以看到以下几个部分:

<?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>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.1.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>
    <name>demo</name>
    <description>Demo project for Spring Boot</description>

    <properties>
        <java.version>1.8</java.version>
    </properties>

    <dependencies>

<!--web应用基本环境配置,支持全栈式Web开发,包括Tomcat和spring-webmvc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

<!--引入了Spring Boot默认的HTTP引擎Tomcat-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

<!--支持常规的测试依赖,包括JUnit、Hamcrest、Mockito以及spring-test模块-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        
        <!-- mybatis依赖 -->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.2</version>
        </dependency>
        
        <!-- mysql依赖 -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        
    </dependencies>

    <build>
        <plugins>

<!-- spring-boot-maven-plugin插件就是打包spring boot应用的 -->
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>
 

PS:更多的依赖我会在后面的章节中给大家讲解,目前的上述几个配置能满足我们最低的要求了。

接下来我们创建一个简单的controller;

 

然后启动,那怎么启动呢?看上图的DemoApplication.java,这个类是springBoot的启动类:

看到里面的main函数,右键--run as--Spring boot App,就开始启动了,结果报错了,如下:

这是因为我们在创建项目的时候添加了数据库驱动依赖(MySQL),当项目启动的时候,springboot就会创建数据源,但是我们又没有做任何的数据源连接配置,解决方式:

(1)把pom文件中的数据库依赖注释掉;(我们可以暂时不用连接数据库)

(2)让springBoot启动的时候不去自动创建数据源:

改成@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

再启动就可以了!(如果遇到端口冲突,杀一下进程就好了,参考:https://blog.csdn.net/q343509740/article/details/80821409)

注意:我的URL里没有添加项目名,为什么呢?有很多人刚接触springboot做测试时候,在访问的时候肯定加上了项目名称,结果肯定是404。

答案:

SpringMVC的运行方式是将打成的war包放到tomcat中运行,这种情况下访问需要在url中加入项目名。SpringBoot同样可以打成war包部署,但也提供了另一种方式:直接执行public static void main()函数并启动一个内嵌的应用服务器(取决于类路径上的依赖是Tomcat还是jetty)来处理应用请求,这时是不需要添加项目名的。
 

 

====================================快速创建简单的springboot项目===================================

maven构建项目

1、访问http://start.spring.io/2、选择构建工具Maven Project、Spring Boot版本2.1.1以及一些工程基本信息,点击“Switch to the full version.”java版本选择1.8,可参考下图所示:3、点击Generate Project下载项目压缩包4、解压后,使用eclipse,Import -> Existing Maven Projects -> Next ->选择解压后的文件夹-> Finsh,OK done!

项目结构介绍

 

Spring Boot的基础结构共三个文件:

src/main/java 程序开发以及主程序入口src/main/resources 配置文件src/test/java 测试程序

另外,spingboot建议的目录结果如下:
root package结构:com.example.myproject

com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- controller | +- CustomerController.java | 1、Application.java 建议放到根目录下面,主要用于做一些框架配置2、domain目录主要用于实体(Entity)与数据访问层(Repository)3、service 层主要是业务类代码4、controller 负责页面访问控制

采用默认配置可以省去很多配置,当然也可以根据自己的喜欢来进行更改
最后,启动Application main方法,至此一个java项目搭建好了!

引入web模块

1、pom.xml中添加支持web的模块:

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

pom.xml文件中默认有两个模块:

spring-boot-starter :核心模块,包括自动配置支持、日志和YAML;

spring-boot-starter-test :测试模块,包括JUnit、Hamcrest、Mockito。

2、编写controller内容:

@RestControllerpublic class HelloWorldController { @RequestMapping("/hello") public String index() { return "Hello World"; }}

@RestController 的意思就是controller里面的方法都以json格式输出,不用再写什么jackjson配置的了!

3、启动主程序,打开浏览器访问http://localhost:8080/hello,就可以看到效果了,有木有很简单!

 

 

==========好了,学习到这里是不是觉得springBoot很简单啊,但是有很多细节一定要理解===========

1.DemoApplication这个类(名称可能有所区别,这个是启动类)一定要在目录的最上层,或者你的controller,service等代码的目录层级一定要比DemoApplication的目录要低,也可以同级!为什么?

答案:因为springBoot之所以简单,就是因为DemoApplication这个启动类,可以当做是一个spring容器!当这个类的main执行,它会按照规则加载它下面的所有东西并进行管理!其实和spring的道理一样。

大家可以试试,如果把我们刚建立的controller转移到DemoApplication的上级目录或者上级目录的子目录中,你再去访问就会404!

2.因为springBoot默认使用了自带的tomcat,默认的端口8080,很多时候会和别的项目端口冲突,这时候我们可以修改端口,很简单,我们下一章会讲到;

3.如何去配置项目的数据源,相比于spring,也很简单,关于配置的问题,我们在第三章(https://blog.csdn.net/qq_32317661/article/details/85784923)会讲到!

那么接下来第二章,我们讲一下,替换springboot自带的tomcat,使用我们自己的tomcat容器发布项目,地址:

https://blog.csdn.net/qq_32317661/article/details/85708032

如果你需要创建springboot+maven的父子级项目,请看我这篇文章

https://blog.csdn.net/qq_32317661/article/details/102967216

 

江湖险恶,我从来都不轻易留下我的名字------周星驰

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。