本人微信公众号"aeolian"~

IDEA新建一个Spring Boot项目

Maven构建项目模板

maven构建的是maven风格的纯净模板,要转变成spring boot项目需要自己添加依赖等配置。

mvn archetype:generate:  Maven插件原型是一个Maven项目模板工具包。 

-DgroupId           包名
-DartifactId        项目名
-DarchetypeArtifactId   类型maven-archetype-quickstart,创建一个Java Project,maven-archetype-webapp,创建一个Web Project
-DinteractiveMode     是否使用交互模式,如果为false,非交互式的命令后直接创建,否则会有控制台提示输入操作

先使用mvn命令构建Maven项目

mvn archetype:generate -DinteractiveMode=false -DgroupId=com.autumn -DartifactId=springbootdemo -Dversion=1.0.0

《IDEA新建一个Spring Boot项目》 

成功导入IDEA后模板如下,可以看出只是个叫springbootdemo的maven项目,目前和springboot还一点关系没有。

《IDEA新建一个Spring Boot项目》

IDEA直接构建Spring Boot

前提配置

用IDEA构建的Spring Boot项目没有Maven模板框架,只有依赖Spring Boot的pom.xml,和上面用Maven创建的刚好相反,那么要如何创建Spring Boot项目既有Maven的目录结构又有springboot的pom依赖呢?

设置Setting/Other Setting -> Build,Execution,Deployment -> Build Tools -> Runner中把VM Options设置为 -DarchetypeCatalog=internal ,这样创建的项目就有maven的目录结构了。

《IDEA新建一个Spring Boot项目》

创建Spring Boot项目

《IDEA新建一个Spring Boot项目》

maven配置

输入Maven必须的一些配置

《IDEA新建一个Spring Boot项目》

spring项目类型选择 

选择Spring Web

《IDEA新建一个Spring Boot项目》

创建成功

创建结果如下,带有spring boot依赖的pom.xml和带有maven目录结构的项目。mvnw(Maven Wrapper)是在没有安装maven或者maven版本不符的情况下使用的代替mvn的命令。

《IDEA新建一个Spring Boot项目》

如果不设置Setting中的Maven配置创建的项目架构如下,会缺少src那部分,只能自己配置。

《IDEA新建一个Spring Boot项目》

Web创建

去spring官网https://start.spring.io/,根据需求点击需要的依赖,然后点击下载,生成的demo和IDEA生成的一样,只不过POM.xml中多了一些其他配置的依赖。

《IDEA新建一个Spring Boot项目》

POM添加依赖

在pom文件里添加Spring Boot依赖,如果是通过IDEA创建,这里就已经创建好了。

对于SpingBoot测试Junit至少是4.1-4.2以上的版本,所以把版本号删除默认的就行

JAR包依赖配置

    <parent>
        
        <groupId>org.springframework.bootgroupId>
        <artifactId>spring-boot-starter-parentartifactId>
        <version>2.2.2.BUILD-SNAPSHOTversion>
        <relativePath/> 
    parent>
<dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> dependencies>

<build> <plugins> <plugin> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-maven-pluginartifactId> plugin> plugins> build>

仓库配置

也可以指定jar包和插件的仓库

    
    <repositories>
        <repository>
            <id>spring-milestonesid>
            <name>Spring Milestonesname>
            <url>https://repo.spring.io/milestoneurl>
        repository>
        <repository>
            <id>spring-snapshotsid>
            <name>Spring Snapshotsname>
            <url>https://repo.spring.io/snapshoturl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
        repository>
    repositories>

    
    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestonesid>
            <name>Spring Milestonesname>
            <url>https://repo.spring.io/milestoneurl>
        pluginRepository>
        <pluginRepository>
            <id>spring-snapshotsid>
            <name>Spring Snapshotsname>
            <url>https://repo.spring.io/snapshoturl>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
        pluginRepository>
    pluginRepositories>

编码

编写启动类

spring boot提供了一个统一的注解@SpringBootApplication。

@SpringBootApplication = (默认属性)@Configuration + @EnableAutoConfiguration + @ComponentScan    

package com.autumn;

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

@RestController
public class firstController {
    @GetMapping("hello")
    public String index(){
        return "HelloWorld~"+this.getClass();
    }
}

添加接口类

必须要写在App启动类一个包下才能够扫描到

@RestController注解相当于@ResponseBody + @Controller合在一起的作用。 

package com.autumn;

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

@RestController
public class firstController {
@GetMapping(
"hello") public String index(){ return "HelloWorld~"+this.getClass(); } }

测试接口

浏览器中输入http://localhost:8080/hello

《IDEA新建一个Spring Boot项目》

打包jar

用package打包,打包后在target文件夹下出现springbootdemo-1.0.0.jar文件

《IDEA新建一个Spring Boot项目》

测试jar

《IDEA新建一个Spring Boot项目》

参考

https://blog.csdn.net/qq_35280367/article/details/79700970

点赞

Leave a Reply

Your email address will not be published. Required fields are marked *