SpringBoot专栏(二) -- 搭建第一个SpringBoot项目

解决问题:

搭建第一个SpringBoot项目?

怎样使用Maven进行Jar管理?

SpringBoot Jar包简述?

SpringBoot重要注解简述?

 

注意:使用SpringBoot2.0,JDK的版本必须在1.8以上,不然会出现一些不兼容的问题搭建第一个SpringBoot项目(使用IDEA

1. 搭建第一个SpringBoot项目(使用IDEA

1.1 使用IDEA创建一个Maven工程

 

 

GroupIdArtifactId两个加起来可以理解为项目的“坐标”,他们保证了项目的唯一性。如果你想把自己的项目打成Jar包放到在本地Maven仓库,就需要使用这两个值。

GroupId一般是公司名,ArtifactId一般是项目名

一直Next到结束。

 

 

Maven项目就建成功了。

 

1.2 搭建SpringBoot框架

1.2.1 在项目Maven的配置文件pom.xml中添加如下依赖。注意一个是parent,一个是在dependencies中。

 

 

这个依赖是SpringBoot框架的核心依赖包,SpringBoot通过这个依赖包来整合常用的第三方框架(各种依赖信息)。

这个依赖是SpringBoot Web的核心依赖包,整合了SpringMVC Web

这里为什么不写版本号?因为在Parent里面已经封装好了版本号。SpringBoot对常用依赖的Jar包信息进行了封装

 

1.2.2 SpringBoot项目的基本目录结构

 (原目录结构)

 

(SpringBoot的目录结构

application.ymlSpringBoot的配置文件,名字是固定的。

 

1.2.3 SpringBoot项目实现(注解含义放到代码注释中了,请仔细阅读)

(完整程序目录结构)

 

Application.java

package com.mungerz;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

// SpringBootApplication注解:负责启动SpringBoot项目。这个注解实现了扫描包的功能,扫描范围是该文件所在的当前目录和同级目录。
// 我们需要格外注意这个注解所在文件的位置,因为它和扫包有关系。什么是扫包?就是发现Service,Controller,Component然后自动注入到Spring容器中。
@SpringBootApplication
public class Application {
    public static void main(String[] args){
        SpringApplication.run(Application.class, args);
    }
}

 

ApiController.java

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

import java.util.Map;

// RestController注解:说明该类是一个Controller,并且参数和返回值都要求符合Restful要求(即Json字符串)
@RestController
// RequestMapping注解:Controller的类的映射地址。
@RequestMapping("/api")
public class ApiController {

    // Autowired自动注入注解:相当于new ApiService,不过这个工作是由Spring容器自己完成的。AutoWired可以注入Controller,Service,Component这几种类。
    @Autowired
    private ApiService apiService;

    // RequestMapping注解:方法的映射地址
    @RequestMapping("/info")
    public Map<String, Object> info(Map<String, Object> params){
        return apiService.info(params);
    }
}

 

ApiService.java

package com.mungerz.service;

import java.util.Map;

// Service层接口
public interface ApiService {
    Map<String, Object> info(Map<String, Object> params);
}

 

ApiServiceImpl.java

package com.mungerz.service;

import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;

// Service注解:说明该类是一个Service类,从逻辑上我们可以知道这个类属于Service层,应该写业务逻辑;从功能上,这个类是可以通过Autowired注解注入的。
@Service
public class ApiServiceImpl implements ApiService {
    @Override
    public Map<String, Object> info(Map<String, Object> params) {
        Map<String, Object> result = new HashMap<>();
        result.put("result", "hello world");
        return result;
    }
}

 

application.yml

spring:
  profiles:
    active: dev

 

2. 结果验证

2.1 启动项目

 

 

2.2 发送http请求

 

 

2.3 返回结果

 

 

(转载请标明出处)

 

posted @ 2019-02-18 18:10  mungerz  阅读(243)  评论(0编辑  收藏  举报