zoukankan      html  css  js  c++  java
  • 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后模板如下,可以看出只是个叫springbootdemo的maven项目,目前和springboot还一点关系没有。

    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的目录结构了。

    创建Spring Boot项目

    maven配置

    输入Maven必须的一些配置

    spring项目类型选择 

    选择Spring Web

    创建成功

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

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

    Web创建

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

    POM添加依赖

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

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

    JAR包依赖配置

        <parent>
            <!-- 指定Spring Boot的版本2.2.2.BUILD-SNAPSHOT -->
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.2.2.BUILD-SNAPSHOT</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
    <dependencies> <!--spring boot核心包--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>

    <build> <plugins> <!--可以将应用打包成一个可执行的jar包的插件--> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

    仓库配置

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

        <!--jar包仓库-->
        <repositories>
            <repository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </repository>
            <repository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </repository>
        </repositories>
    
        <!--插件仓库-->
        <pluginRepositories>
            <pluginRepository>
                <id>spring-milestones</id>
                <name>Spring Milestones</name>
                <url>https://repo.spring.io/milestone</url>
            </pluginRepository>
            <pluginRepository>
                <id>spring-snapshots</id>
                <name>Spring Snapshots</name>
                <url>https://repo.spring.io/snapshot</url>
                <snapshots>
                    <enabled>true</enabled>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>

    编码

    编写启动类

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

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

    package com.autumn;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class SpringbootApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(SpringbootApplication.class, args);
        }
    
    }

    添加接口类

    必须要写在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

    打包jar

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

    测试jar

    使用jsp

    pom.xml

        <dependencies>
            <!--WEB支持-->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
            <!--jsp页面使用jstl标签-->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>jstl</artifactId>
            </dependency>
            <!--用于编译jsp-->
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-jasper</artifactId>
                <!--<scope>provided</scope>-->
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <version>1.4.2.RELEASE</version>
                </plugin>
            </plugins>
            <resources>
                <resource>
                    <directory>src/main/webapp</directory>
                    <targetPath>META-INF/resources</targetPath>
                    <includes>
                        <include>**/**</include>
                    </includes>
                </resource>
                <resource>
                    <directory>src/main/resources</directory>
                    <includes>
                        <include>**/**</include>
                    </includes>
                    <filtering>false</filtering>
                </resource>
            </resources>
        </build>

    application.properties

    spring.mvc.view.prefix: /WEB-INF/jsp/
    spring.mvc.view.suffix: .jsp

    Controller

    修改注解@Controller

    package com.autumn;
    
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    //@RestController,要返回jsp这里要用Controller注解
    @Controller
    public class firstController {
    
        @GetMapping("hello")
        @ResponseBody
        public String index(){
            return "HelloWorld~"+this.getClass();
        }
    
        @RequestMapping("/showjsp")
        public ModelAndView showjsp(){
            ModelAndView mav=new ModelAndView("index");
            mav.addObject("name","aeolian");
            List list=new ArrayList<>();
            list.add("180");
            list.add("65");
            mav.addObject("list",list);
            return mav;
        }
    }

    index.jsp

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <html>
    <head>
        <title>SpringBoot测试</title>
    </head>
    <body>
    ${name}
    ${list}
    </body>
    </html>

    测试

    参考

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

  • 相关阅读:
    ArrayList类(转)
    通过XmlDocument读写Xml文档(转)
    js的一些常用方法
    和我一起恶补pl/sql(第三讲)
    js的跑步算法
    细说 Form (表单)(转)
    C#反射设置和读取类的属性
    显示最近30天的记录vs显示这个月的记录(pl\sql)
    nyist 637 我和你
    nyist 子串和
  • 原文地址:https://www.cnblogs.com/aeolian/p/11857754.html
Copyright © 2011-2022 走看看