Django在私人博客上写。进度 (三阶段第一阶段初步能写的)%. 周末能开始写! 争取写出来API
给自己的memo
稍后写boot+vue那本书
$ \\\ 我应该学习 &&刷题上分$
quote“Spring Boot 出现后,变成傻瓜式开发!”
①Auto-Dependency 自动依赖解析
②Auto-Configuration 自动参数
③Management EndPoints 管理终结点,(和监控有关)
④Embedded HTTP Servers (Tomcat, 或jetty) 嵌入web服务器
程序启动流程:
1. boot 2.0 启动 :- 依赖 - 配置
2. 自动化依赖 -解析 -加载
3. 自动化配置 - 工厂模式创建Bean -依赖注入
4. 自动化服务器 -内置web server - 监听
具体MySQL配置,原理分析与自己的理解 在编写中,会开新的一篇posts.
来自阿里资深框架师的视频。对他的理解的思考(底层)和使用手册初步
订单API
Java Spring Boot 2.5
1. 自动化配置原理、MySQL实战
2. MongoDB + 高并发Redis缓存 #已经学完
3. Redis与安全机制 #正在学
4. 安全、Swagger、监控与Docer
Spring Boot 2.5
0
前言
【纯自己写,不过介绍部分依赖课件和讲解】
Spring 企业级开发$\color{red}{工具类库}$。
开发工具、MVC框架、类库的完整平台:
微服务。
轻量级控制反转(IoC)和面向切面(AOP)的容器框架。
一个分层的JavaSE/EEfull-stack一站式 轻量级开源框架。
Java Spring平台主要框架。
1. Spring Framework: 即spring 工具类框架,其他spring项目如spring boot也依赖于此框架。
2. Spring MVC: Java MVC 网站开发框架
3. Spring Boot: 简化Spring 应用开发。简化配置文件。使用嵌入式web服务器, 含有诸多开箱即用微服务功能,可以和cloud联合部署。
4. Spring Cloud: 微服务框架,为开发者提供分布式系统的配置管理、服务发现、路器、智能路由、微代理、控制总线等开发工具包。toolkit?
5. Spring Data: 数据访问框架, 封装了很多种数据及数据库的访问相关技术,包括:jdbc、$\color{red}{Redis、MongoDB}$、Neo4j等。
6. Spring REST Shell: 可以调用Rest服务的命令行工具,敲命令行操作Rest服务。
7.
【接口】微信小程序,车载程序网页背后:Go,php或spring boot这种轻量级开发框架。
【数据库】 MySQL、其他 MongoDB
前端框架 REACT,VUE
Spring Boot 2.x 特性
1. Java8 最低 ;要求Spring版本5+ Thymeleaf 3+
2. Tomcat 8.5+ Jetty 9.4+ Hibernate 5.2+, Maven 3.3+ Gradle 3.4+
3. 提供安全配置,默认静态资源和$\color{red}{Actuator}$启动安全
4. 增加$\color{red}{Reactive}$ 响应式模块,如Spring $\color{red}{WebFlux}$
5. HTTP/2 新协议支持
6. Spring Boot 2.x 启用$\color{red}{HikariCP}$替换Tomcat内置连接池。
7. 支持Kotlin 1.2,支持性能监控Micrometer集成$\color{red}{Actuator}$ + 其他
8. 生态 周边 安全,生产环境等等改进。2.5 更新:startup endpoint 启动简化。
Spring Boot目标:
自动化数据访问-> 自动化依赖管理 -> 自动化配置参数 -> 自动化依赖注入 -> 自动化性能监控 -> 自动化Web服务器 (-> 自动化数据访问)
2.4 实战Demo
start.srping.io
在线创建项目
Version: 2.5.0
Dependencies 选Spring Web
网站项目
分层
【基本上都是三层基础上往外扩展】
com.alibaba.dao 数据层
com.alibaba.services 业务逻辑层
com.alibaba Group群组的名字,所有都在这个下面(后续细讲)
【开发REST API 模拟淘宝订单接口】 (整个流程梳理) $\color{cyan}{实际导数演示}$
$\color{red}{(全部都在JavaSpringBoot25xDemo下)}$
import org.srpingframework.boot.SpringApplication;
@RestController //特殊注解? 网站后台Rest接口(API)
@SpringBootApplication
public class JavaSpringBoot25xDemoApplication{
System.out.println("Hello sodajjioj 2.5"); //可去
SpringApplication.run(JavaSpringBoot25xApplication); //光标选中,右键run as java application或spring
//Tomcat 网站服务器,
//创造网站依赖 公开http 接口
@RequestMapping("/hello") //网络地址
public Spring hello(){
String s = "Hello sodajjioj 2.5";
return s;
}
}
/* Tomcat 8080端口可接受
localhost:8080/hello */
System.out.println("Hello sodajjioj 2.5");
配置参数。
spring.application.name = "JavaSpringBoot212"
server.host = "localhost"
server.port = 8000 //这个端口配置很重要
1
修改contextpath
在src/main/resources 目录下, 【application.properties 】这个里、、多记一记框架各文件的位置!!
spring.application.name = "JavaSpringBoot25x"
server.servlet.contextPath = /SpringBoot
server.host = "localhost"
server.port = 8080
或者
server.servlet.context-path = /SpringBoot
bean (原java名字)
java某种特殊对象,java bean
某种对象,携带某种数据,信息的对象。
监控注入
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx){
return args ->{
System.out.println("监控 Spring Boot2.0 自动注入的Bean:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames){
System.out.println("Spring 自动注入Bean:" +beanName);
}
}
}
// 监控别人的注入
以下四个都是在com.alibaba.demo文件夹(域?还是啥专有名词)下
JavaSpringBoot25xDemoApplication
package com.alibaba.demo
import org.springframework.boot.SpringApplication;
@SpringBootApplication
public class JavaSpringBoot25xDemoApplication{ //这类的名字也太长了吧
public state void main(String[] args){
SpringApplication.run(JavaSpringBoot25xDemoApplication.class, args)
}
}
Order.java
淘宝订单接口
public class Order{
private int id; //我感觉私有变量和c++一样类外部无法访问. 就根据订单【实际场景】所需信息来开空间(变量存它)
private String title;
private double price;
//【Order 类的代码与初步理解】
//主要就是把订单的信息获取进来
//方法一:获取id
public int getId(){
return id; //返回Order.id这个attribute
}
//法二:设置id
public void setId(int id){
this.id = id;
}
//【偷懒】可以用source标题下 自动生成属性访问器【增(删)改查】
}
OrderController.java:
package com.alibaba.demo; //一般都三+个字段
import org.springframework.web.bind.annotation.RequestMapping;
@RestController
public class OrderController{
@RequestMapping("/getOrder") //【浏览器网页的目录页。即127.0.0.1或localhost:一个端口/getOrder/】
public Order getOrder()
{
Order order = new Order();
order.setId(1); //设置id
order.setTitle("apple ksakopdkasop"); //标题title
order.setAddress("哔哩吧啦")
return order; //返回order
}
}
访问/getOrder/ 后返回了:
{"id":1, "title": "apple ksakopdkasop", "Address": "哔哩吧啦"}
(当然手机上看到的是前端处理过这条数据的美化形式)
Extra:
新闻类,论坛类app 接口:也是类似boot的!
自动化配置机制:
根据classpath.jar自动配置
新概念: 注解
@Confi...啥的
一种新的代码扩展机制 【一种标注】
需要$\huge\color{purple}{功能增强}$,扩展。
完成:参数设置、、、安全检查、、
写成统一类型封装起来。@AutoConfiguration $\color{blue}{<—}$ 这玩意非侵入式non-invasive, 尽量不会代码藕合,人A和其他人B,C产生交叉,尽量避免。
$ {@SpringBootApplication} \begin{cases} ①@EnableAutoConfiguartion. 如名\\\ ②@Configuration 额外beans? 导入附加配置的类classes\\\ ③@ComponentScan app所在地包的扫描\\\ \end{cases} \\\ $
@SpringBootApplication
(这里还是MySQL接口)
Spring Data都封装好了,直接调用即可,也可以自定义方法,适配具体应用场景特殊数据表
赛高!
【这个待多用以后理解】
2 MongoDB数据库和 高并发Redis缓存
待上传笔记
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
$ \\\ $
偷偷盗学一波提高课笔记
文字读起来快一点、(假如笔者写的质量很好的话)。读完再看视频。
才不会写出来来源是铅笔等人呢(题解区) hh 我就是题解区江洋大盗 ,希望自己早日默写/saber过,熟记于心
【动态规划】
强连通
【MapReduce】 Spark 和Hadoop 大数据技巧
方案样例:
-map(): 聘请1100个员工。 1000名工人,100位经理,10位主管。(一人管10个)。每个工人负责统计一个书架,降结果报告给他的经理。
-combine(): 每个主观负责的10个经理将各自的统计结果汇总报告给这位主管。
-reduce(): 所有主管集合起来,把他们各自的统计结果汇总起来。
(向管理员报告)
subtitle:【热爱是获得创造力的唯一途径】保持平静doing nothing. Disengage, choose a period of stillness. 跳出习惯性的操作方式和已经成为标准的习惯性的交流方式。
Task 4