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)就可以直接轉換