微服务与springboot
微服务
一个项目可以由多个小型服务构成(微服务)
SpringBoot
a.快速开发微服务模块
b.简化j2ee开发
c.整个Spring技术栈的整合(整合SpringMvc Spring)
d.整个j2ee技术的整合(整合mybatis redis)
第一个SpringBoot程序
目录结构
目录结构resource:
static:静态资源(js css 图片 音频 视频)
template:模板文件(模板引擎freemarker,thymeleaf;默认不支持jsp)。
application.properties:配置文件。
springboot内置了tomcat,并且不需要打成war包在执行。
可以在application.properties中对端口号等服务信息进行配置。
springboot将各个应用/三方框架设置成了一个个‘场景’stater,要用哪个只需要引入哪个场景即可(springboot会自动注入需要的依赖)。
- 主配置类
package com.bwl.base;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 配置类:扫描本包及其子包
* @author zhaopan
*
*/
@SpringBootApplication //springboot的主配置类
public class SpringPro1Application {
public static void main(String[] args) {
SpringApplication.run(SpringPro1Application.class, args);
}
}
- controller
package com.bwl.base.contruller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller //是一个控制器
@ResponseBody //返回值以json的形式
public class UserController {
@RequestMapping("/test")
public String test() {
return "你好";
}
}
-
默认端口:8080
-
applicadtion.properties中配置端口:
server.port=8888
- 测试结果
自动装配源码解读
自动装配原理
配置文件及yml使用
application.yml
- 实体类User.java
package com.bwl.base.entity;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.Map;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
@Component //将此javabean放入到spring容器
@ConfigurationProperties(prefix = "user") //yml中配置属性
public class User {
private String name;
private int id;
private Date date;
//集合
private Map<String,String> map;
//集合
private List<String> list;
//数组
private String[] skills;
//对象类型
private Pet pet;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getId() {
return id;
}
public void setId