spring boot 入门基础
前言
微服务这个概念最近比较火,像我们平时工作中如果想要开发一些小工具的话,技术上选型也要以轻量级、微服务为优先考虑。而传统的spring架构还是比较繁琐的,各种配置文件,这个时候我们就需要spring boot这个新框架来帮忙了。
什么是spring boot?
Spring Boot是一款简化新Spring应用的初始搭建以及开发过程的新框架。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。
为什么要用spring boot?
它可以大大简化新Spring应用的初始搭建以及开发过程,能够使用内嵌的Tomcat, Jetty or Undertow等,不需要部署war,零代码生成和零XML配置,自动装配spring等等。
spring boot的常用注释有哪些?
Controller层
注解 | 含义 |
---|---|
@RequestMapping | 用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径 |
@RequestParam | 匹配前台传来的参数给注解参数。比如下面前台传来的是id,匹配到id参数上 |
@ResponseBody | 表示该方法的返回结果直接写入HTTP response body中,直接返回json数据 |
@Controller | 将类注册为Bean |
@RestController | @Controller和@ResponseBody的合集,表示这是个控制器bean,并且是将函数的返回值直接填入HTTP响应体中 |
@CrossOrigin | 注解在类上,解决跨域名调用问题 |
@RequestMapping详解
RequestMapping注解有六个属性,用一段代码详细说明
@RestController
@RequestMapping("account")
public class Account {
public Logger logger = LoggerFactory.getLogger(Account.class);
@Autowired
private AccountMapper accountMapper;
//value:指定请求的实际地址,method:指定请求的method类型,GET、POST、PUT、DELETE等;
@RequestMapping(value = "/getAllAccount", method = RequestMethod.GET)
//或者含有变量
@RequestMapping(value="/owners/{ownerId}", method=RequestMethod.GET)
public String findOwner(@PathVariable String ownerId, Model model) { //省略...}
//方法仅处理request Content-Type为“application/json”类型的请求
@RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")
//指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回
@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")
//仅处理请求中包含了名为“myParam”,值为“myValue”的请求
@RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, params="myParam=myValue")
//仅处理request的header中包含了指定“Refer”请求头和对应值为“http://www.baidu.com/”的请求;
@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.baidu.com/")
配置相关
注解 | 含义 |
---|---|
@SpringBootApplication | 包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@ComponentScan让spring Boot扫描到Configuration类并把它加入到程序上下文 |
@Configuration | 等同于spring的XML配置文件 |
@ComponentScan | 组件扫描,可自动发现和装配一些Bean。 |
@ImportResource | 加载xml配置文件 |
@AutoWired | 自动导入依赖的bean |
@Component | 不属于持久层、业务层和控制层的组件类用@Component标注 |
@Value | 通过在application.properties配置com.account.user=mike,然后通过 @Value("${com.account.user}")可以引用进来 |
自动配置
spring boot自动化配置的Bean提供了300多个属性,用于调整设置,只要在环境变量、Java系统属性、JNDI、命令行或者属性文件里面进行指定就可以了。
eg:在application.properties配置
spring.datasource.url=jdbc:mysql://xx:3306/dbName
spring.datasource.username=admin
spring.datasource.password=admin
spring.datasource.driverClassName=com.mysql.jdbc.Driver
server.port=8081
一个简单的demo实践
idea如何新建spring boot项目?
新建project-添加spring initializr项目-添加依赖web
非常简单的一个demo,然后访问http://127.0.0.1:8080/hello就能看到输出结果。
@RestController
public class HelloController {
@RequestMapping(value = "/hello",method = RequestMethod.GET)
public String hello(){
return "hello , world!!!";
}
}