1) jdbc DBUtils,JdbcTemplate(spring)
2) 框架:旧三大框架 struts2 + spring + hibernate
3) 升级:新三大框架 springmvc + spring + mybatis (主流开发基于SSM)
4) 微服务: SOA面向服务架构,ESB总线(太重),推出dubbo简化SOA,业界叫做SOA最佳实践,基于RPC远程过程调用,nio,压缩,加密二进制。
5) Dubbo,SpringClound微服务,Dubbo只是一个RPC框架,SpringClound外延,Eureka注册中心,它zk强大。Ribbon负载均衡(nginx)。Feign简化RESTFul支持。Hystrix断路器。Zull API gateway API网关,Sidecar封装异构程序.net,php。NodeJS。
SpringClound外延更广阔,软件架构各个方面都有非常好的解决方案。
Maven构建项目,基于httpClient+json/dubbo微服务来构建项目
缺点:
1) Maven构建,pom.xml(dubbo)jar版本冲突
传统项目:jt-parent父项目,pom.xml自己构建
Springboot来完成父工程,写很多实例start-web依赖
2) 三大框架mybatis-config.xml,appliactionContext*.xml,springmvc-config.xml,web.xml 一堆配置文件。过渡新三大框架xml零配置,没有逃过,继续扩充xml内容,没有语法检查,没有大小写检查,业务逻辑错误。
SpringBoot引入注解和习惯配置,把上面的xml都干掉了!
3) 开发的代码量多
SpringBoot引入注解方式
4) 部署,Maven tomcat插件,要为每个子系统配置启动命令
引入依赖start-web,启动方式也变了,执行一个main方法。
5) Maven项目jdk版本,MavenJava修改2处,MavenWeb修改3处。
SpringBoot中pom.xml中强制指定jdk版本,Maven Update Project。SpringBoot抛弃1.6,1.7,全面支持1.8
SpringBoot 把开发者引入SpringClound世界中简单,易用
开发步骤:
1) 创建Maven工程jar类型
2) pom.xml,加入一个父工程springboot,
3) 创建一个Controller(SpringMVC)标签有增强(json @ResponseBody)
4) 启动,创建一个类,写main方法,加注解
Yaml 早期在hadoop中广泛使用
application.yml
1) 类似属性文件,但是它的key能表现多级树结构
2) 这个文件中表现多级结构都是空格,不许tab键
Mybatis注解方式开发
1)接口中增加方法
public interface UserMapper {
public List
//查询某个用户,使用注解方式
@Select("select * from user where id=#{pid}")
public User get(@Param("pid") Integer id);
}
1) SpringMVC接收参数要求
//springClound采用RESTFul,SpringBoot它@PathVariable必须写后面变量@PathVariable("id")
@RequestMapping("/get/{id}")
public User get(@PathVariable("id") Integer id){
return userService.get(id);
}
新增:
1)@Insert接口,参数:pojo @Param()
//新增用户
@Insert("insert into user (name,birthday,address)"
+ " values(#{name},#{birthday},#{address})")
public void insert(@Param("name") String name,
@Param("birthday") Date birthday,
@Param("address") String address);
2)controller接收,RESTFul
@RequestMapping("/insert/{name}/{birthday}/{address}")
public String insert(@PathVariable("name") String name,
@PathVariable("birthday") String birthday,
@PathVariable("address") String address){
try{
//日期转换
DateFormat format1 = new SimpleDateFormat("yyyy-MM-dd");
Date birthday2 = format1.parse(birthday);
userService.insert(name, birthday2, address);
return "success";
}catch(Exception e){
return "insert error";
}
}
修改:
1) 接口
//修改用户信息
@Update("update user"
+ " set name=#{name},birthday=#{birthday},address=#{address}"
+ " where id=#{id}")
public void update(User user);
2) Controller
1) SpringBoot 野心,为了把开发者引向SpringClound编写微服务框架代码,SpringClound如果直接传统编程方式,对开发者要求比较高。Spring出品SpringBoot来整个简化编程。
2) 约定大于配置(Maven)习惯大于配置,开发代码量急剧降低,特别是配置文件。具体通过注解方式@SpringBootApplication(替代web.xml程序入口)
3) 结果非常好,去掉mybatis-config.xml、applicationContext*.xml、springmvc-config.xml、web.xml。能否去掉所有配置(跟spring不直接相关的就无法去除:@MapperScan、数据源4个参数等)
4) 新的配置文件application.yml文件。配置信息总的来说少很多。不好用,很多束缚:里面必须以空格来形成树形展现,不能有tab键。类似kv,格式:k: v,v前面必须有空格
5) Mybatis使用注解方式开发
a) 在接口上使用注解:@Select、@Insert、@Update、@Delete,参数都需要写上@Param,
b) 在Controller主流方式RESTFul方式,@PathVariable(“id”),特殊请求,参数pojo对象
c) 日期封装,浏览器输入转换日期类型,Post/ajax(json)就可以直接转换