SpringBoot专栏(二) -- 搭建第一个SpringBoot项目
解决问题:
搭建第一个SpringBoot项目?
怎样使用Maven进行Jar管理?
SpringBoot Jar包简述?
SpringBoot重要注解简述?
注意:使用SpringBoot2.0,JDK的版本必须在1.8以上,不然会出现一些不兼容的问题。搭建第一个SpringBoot项目(使用IDEA)
1. 搭建第一个SpringBoot项目(使用IDEA)
1.1 使用IDEA创建一个Maven工程
GroupId和ArtifactId两个加起来可以理解为项目的“坐标”,他们保证了项目的唯一性。如果你想把自己的项目打成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.yml是SpringBoot的配置文件,名字是固定的。
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 返回结果
(转载请标明出处)