Fork me on GitHub

创建Maven Spring boot项目学习笔记 Hello world(二)

 

 

Maven的用途之一是服务于构建,它是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。我们不需要也不应该一遍又一遍地输入命令,一次又一次地点击鼠标,我们要做的是使用Maven配置好项目,然后输入简单的命令(如mvn clean install),Maven会帮我们处理那些烦琐的任务。
Maven是跨平台的,无论是在Windows上,还是在Linux或者Mac上,都可以使用同样的命令。Maven能够很方便的帮你管理项目报告,生成站点,管理JAR文件,等等。

项目构建过程:【清理项目】→【编译项目】→【测试项目】→【生成测试报告】→【打包项目】→【部署项目】这六个步骤就是一个项目的完整构建过程。

Maven的作用(摘录)

  1. 在开发中,为了保证编译通过,我们会到处去寻找jar包,当编译通过了,运行的时候,却发现"ClassNotFoundException",我们想到的是,难道还差jar包?
  2. 每个Java项目的目录结构都没有一个统一的标准,配置文件到处都是,单元测试代码到底应该放在那里也没有一个权威的规范。
  3. 因此,我们就要用到Maven(使用Ant也可以,不过编写Ant的xml脚本比较麻烦)----一个项目管理工具
  4. Maven主要做了两件事:
  • 统一开发规范与工具
  • 统一管理jar包
    • 还可以自定义框架模板代码, 建骨架项目
    • 搭建maven私服

常用命令

编辑
mvn archetype:generate 创建Maven项目
mvn compile 编译源代码
mvn deploy 发布项目
mvn test-compile 编译测试源代码
mvn test 运行应用程序中的单元测试
mvn site 生成项目相关信息的网站
mvn clean 清除项目目录中的生成结果
mvn package 根据项目生成的jar
mvn install 在本地Repository中安装jar
mvn eclipse:eclipse 生成eclipse项目文件
mvnjetty:run 启动jetty服务
mvntomcat:run 启动tomcat服务
mvn clean package -Dmaven.test.skip=true:清除以前的包后重新打包,跳过测试类
 

 

选择maven-archetype-webapp类型

 

 

 修改build path 修改环境为1.8,设置jdk

 创建server 选择之前安装的tomcat8.5,注意安装的tomcat版本需要和选择创建的版本匹配。

 

 设置完成后,出现如下红色错误,这是因为项目设置的java版本和配置的 不一致导致。

 

 

 右点项目属性 ,project facets 里选择java 的版本为1.8即可。

 

接下来是配置maven 加入spring boot框架

编辑pom.xml

将如下内容放进去

 <!-- 继承 父包-->
    <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.5.7.RELEASE</version>
</parent>

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

右点选择maven ---update project即可。会将相应的版本 down到项目中。

 

 

在项目根目录下创建Application类,Spring Boot建议将我们main方法所在的这个主要的配置类配置在根包名下。

Application.java中有main方法。

因为默认和包有关的注解,默认包名都是当前类所在的包,例如@ComponentScan, @EntityScan, @SpringBootApplication注解。

@SpringBootApplication

由于大量项目都会在主要的配置类上添加@Configuration,@EnableAutoConfiguration,@ComponentScan三个注解。

因此Spring Boot提供了@SpringBootApplication注解,该注解可以替代上面三个注解(使用Spring注解继承实现)。

 

@RestController

因为我们例子是写一个web应用,因此写的这个注解,这个注解相当于同时添加@Controller@ResponseBody注解。

@EnableAutoConfiguration

Spring Boot建议只有一个带有该注解的类。

@EnableAutoConfiguration作用:Spring Boot会自动根据你jar包的依赖来自动配置项目。

 我创建了Applciation  类作为main启动程序文件,注意:该文件需要放到包的根目录,否则无法扫描 其他自定义的子目录 和子文件,像controller文件

我还创建了application.properties文件 自定义端口

package com.ming.test;

import java.util.Date;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;

//@SpringBootApplication是Spring Boot的核心注解,也是一个组合注解。
//主要组合了@Configuration、@EnableAutoConfiguration、@ComponentScan。
@SpringBootApplication
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}

我的目录结构:

 

 

 application配置文件,可以修改端口号。

 

如果端口被占用,可以输入netstat -ano查看端口占用情况,找到对应的PID 后 打开任务管理器,找到相应的PID 进程可以结束端口占用。

 

注意 启动的时候选择 run as java application即可。

 

 

 @GetMapping也可以换成如下写法

 @RequestMapping(value = "/userinfo", method = RequestMethod.GET)

 

posted @ 2017-09-23 22:04  低调的神  阅读(7949)  评论(0编辑  收藏  举报