<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[LiveForCode的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/LiveForCode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; LiveForCode]]></copyright><item><title><![CDATA[阶段二模块二]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358374</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358374</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:29:23 +0800</pubDate><description><![CDATA[作业要求


基于 SpringBoot 实现一个登录功能（含有登录拦截验证）


使用 Spring Session 进行 Session 一致性控制


将工程打成 war 包


将 war 包部署到 Tomcat 集群中，要求 1 个 Nginx 节点、2 个 Tomcat 节点
请求 --&gt; Nginx（轮询策略）--&gt; Tomcat 1 / Tomcat 2


完成测试


具体要求

作业提交时提交可运行的工程代码（源代码和 war 包）以及 SQL 脚本，Nginx 配置及 T]]></description><category></category></item><item><title><![CDATA[阶段二模块一]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358359</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358359</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:29:12 +0800</pubDate><description><![CDATA[作业要求
开发 Minicat V 4.0，在已有 Minicat 基础上进一步扩展，模拟出 webapps 部署效果。磁盘上放置一个 webapps 目录，webapps 中可以有多个项目，例如 demo1、demo2、demo3... 每个项目中含有 Servlet，可以根据请求 url 定位对应 Servlet 进一步处理。
作业具体要求参考以下链接文档：
https://gitee.com/lagouedu/alltestfile/raw/master/tomcat/Tomcat%E4%BD%9C%]]></description><category></category></item><item><title><![CDATA[阶段一模块四]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358332</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358332</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:29:01 +0800</pubDate><description><![CDATA[作业要求
自定义简易版 SpringBoot，实现 SpringBoot MVC 及内嵌 Tomcat 启动、DispatcherServlet 注册和组件扫描功能。

程序通过 main 方法启动，可以自动启动 Tomcat 服务器
可以自动创建和加载 DispatcherServlet 组件到 ServletContext 中
可以自动通过 @ComponentScan 扫描 Controller 等组件
Controller 组件可以处理浏览器请求，返回响应结果

作业提示
当实现了 Servlet ]]></description><category></category></item><item><title><![CDATA[阶段一模块三]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358319</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358319</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:28:48 +0800</pubDate><description><![CDATA[作业要求：
手写 MVC 框架基础上增加如下功能：


定义注解 @Security（有 value 属性，接收 String 数组），该注解用于添加在 Controller 类或者 Handler 方法上，表明哪些用户拥有访问该 Handler 方法的权限（注解配置用户名）


访问 Handler 时，用户名直接以参数名 username 紧跟在请求的 url 后面即可，比如 http://localhost:8080/demo/handle01?username=zhangsan


程序要进行验证，]]></description><category></category></item><item><title><![CDATA[阶段一模块二]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358303</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358303</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:28:26 +0800</pubDate><description><![CDATA[作业要求：
学员自定义 @Service、@Autowired、@Transactional 注解类，完成基于注解的 IoC 容器（Bean 对象创建及依赖注入维护）和声明式事务控制，写到转账工程中，并且可以实现转账成功和转账异常时事务回滚。
注意考虑以下情况：


注解有无 value 属性值【@service（value=""） @Repository（value=""）】


service 层是否实现接口的情况【 JDK 还是 CGLib 】


分析：


按照课程里面的项目，实现以 XML 形式]]></description><category></category></item><item><title><![CDATA[阶段一模块一]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358285</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358285</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:28:09 +0800</pubDate><description><![CDATA[首先，说明一些自己学习过程中产生的问题：

XML 文档解析问题
怎样处理参数以及返回结果

最初，看完自定义持久层框架部分后，我发现了课程里面的简单的框架雏形与 MyBatis 源码之中有很多出入部分，于是我在思考，为什么 MyBatis 要这样做？于是我决定不只是简单地写一个自定义持久层框架，而是参照着 MyBatis 源代码实现一个简版的 MyBatis 框架。


XML 配置文件解析问题：
翻阅 MyBatis 源码，我们可以发现，MyBatis 没有使用课程中的 Dom4J 技术，而是使用 DO]]></description><category></category></item><item><title><![CDATA[自增 ID 与 UUID]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358169</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358169</guid><author>LiveForCode</author><pubDate>Thu, 01 Jul 2021 00:27:54 +0800</pubDate><description><![CDATA[自增的主键的值是顺序的，所以 InnoDB 把每一条记录都存储在一条记录的后面。当达到页面的最大填充因子时候（InnoDB 默认的最大填充因子是页大小的 15/16，会留出 1/16 的空间留作以后的修改）


下一条记录就会写入新的页中，一旦数据按照这种顺序的方式加载，主键页就会近乎于顺序的记录填满，提升了页面的最大填充率，不会有页的浪费


新插入的行一定会在原有的最大数据行下一行，MySQL 定位和寻址很快，不会为计算新行的位置而做出额外的消耗


减少了页分裂和碎片的产生


因为 UUID 相对顺]]></description><category></category></item><item><title><![CDATA[分布式集群架构场景化解决⽅案]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358157</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358157</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:13:22 +0800</pubDate><description><![CDATA[一致性 Hash 算法


直接寻址法
优点：效率肯定是最高的
缺点：浪费空间，没办法处理重复数据


除留余数法
使用取模的方法，以一定的效率从而达到减少空间使用的目的


开放寻址法


拉链法
在 Java 当中最经典的实现就是 HashMap


Hash 算法应用场景


请求的负载均衡
Nginx 的 ip_hash 策略


分布式存储
分库分表，集群中的数据 ID


普通 Hash 算法存在的问题
在空间发生变化的时候，会导致大部分的 Hash 值重新计算。
一致性 Hash 算法
一致性]]></description><category></category></item><item><title><![CDATA[URLClassLoader]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358149</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358149</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:13:12 +0800</pubDate><description><![CDATA[URLClassLoader
说明
public class URLClassLoader extends SecureClassLoader implements Closeable

此类加载器用于从引用 Jar 文件和目录的 URL 的搜索路径加载类和资源。任何以 "/" 结尾的 URL 都假定是指一个目录。否则，URL 被认为是指根据需要打开的 Jar 文件。
当后续加载类和资源时，将使用创建 URLClassLoader 实例的线程的 AccessControlContext。
加载的类默认授权只]]></description><category></category></item><item><title><![CDATA[Tomcat 体系结构]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358132</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358132</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:13:01 +0800</pubDate><description><![CDATA[Tomcat 体系结构
Tomcat 设计了两个核心组件连接器（Connector）和容器（Container）来完成 Tomcat 的两大核心功能。


连接器，负责对外交流：处理 Socket 连接，负责⽹络字节流与 Request 和 Response 对象的转化；


容器，负责内部处理：加载和管理 Servlet，以及具体处理 Request 请求；


连接器组件 Coyote
Coyote 是 Tomcat 中连接器的组件名称 , 是对外的接口。客户端通过 Coyote 与服务器建立连接、发送]]></description><category></category></item><item><title><![CDATA[Spring]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358101</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358101</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:12:52 +0800</pubDate><description><![CDATA[Spring Framework
Spring 简介
Spring 框架即以 interface 21 框架为基础，经过重新设计，并不断丰富其内涵，于2004年3月24日，发布了1.0版本。创始人是 Rod Johnson。
Spring 是一个轻量级__控制反转(IoC)__和__面向切面(AOP)__的容器框架。
Spring 框架由 7 部分组成： Spring Core、 Spring AOP、 Spring ROM、 Spring DAO、 Spring Web、 Spring Context、 ]]></description><category></category></item><item><title><![CDATA[Spring MVC]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118358044</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118358044</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:12:39 +0800</pubDate><description><![CDATA[Spring MVC
MVC 体系结构
MVC 指 MVC 模式的某种框架，它强制性地使应用程序的输入、处理和输出分开。使用 MVC 应用程序被分成三个核心部件：模型、视图、控制器。它们各自处理自己的任务。最典型的 MVC 就是 JSP + Servlet + JavaBean 的模式。

视图
视图是用户看到并与之交互的界面。对老式的 Web 应用程序来说，视图就是由 HTML 元素组成的界面，在新式的 Web 应用程序中，HTML 依旧在视图中扮演着重要的角色，但一些新的技术已层出不穷，它们包括 Ado]]></description><category></category></item><item><title><![CDATA[Spring Boot]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118357964</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118357964</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:12:14 +0800</pubDate><description><![CDATA[Spring Boot 简介
言归正传，什么是SpringBoot呢，就是一个javaweb的开发框架，和SpringMVC类似，对比其他javaweb框架的好处，官方说是简化开发，约定大于配置，  you can “just run”，能迅速的开发web应用，几行代码开发一个http接口。
所有的技术框架的发展似乎都遵循了一条主线规律：从一个复杂应用场景 衍生 一种规范框架，人们只需要进行各种配置而不需要自己去实现它，这时候强大的配置功能成了优点；发展到一定程度之后，人们根据实际生产应用情况，选取其中实用]]></description><category></category></item><item><title><![CDATA[Mybatis 配置多个数据源的方式]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118357911</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118357911</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:11:48 +0800</pubDate><description><![CDATA[properties 属性文件的实现方式
数据库连接的 properties 配置文件，配置两个数据源信息：
spring.jdbc.driver=com.mysql.cj.jdbc.Driver
spring.jdbc.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&amp;characterEncoding=utf8&amp;nullCatalogMeansCurrent=true&amp;useSSL=false&amp;useJDBCCo]]></description><category></category></item><item><title><![CDATA[MyBatis 相关概念]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118357927</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118357927</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:11:18 +0800</pubDate><description><![CDATA[对象关系映射（ORM）
ORM（Object Relational Mapping）对象关系映射，是一种程序设计技术，用于实现面向对象编程语言中不同类型系统的数据之间的转换。
面向对象是从软件工程基本原则（耦合、聚合、封装等）的基础上发展起来的，而关系数据库则是从数学理论发展而来的，两套理论存在显著的区别。为了解决这个不匹配的现象，对象关系映射技术应运而生。
ORM 框架完成了面向对象编程语言到关系数据库的映射。当 ORM 框架完成映射后，程序员既可以利用面向对象编程语言的简单易用性，又可以利用关系数据库的]]></description><category></category></item><item><title><![CDATA[MyBatis 基本应用]]></title><link>https://blog.youkuaiyun.com/LiveForCode/article/details/118357866</link><guid>https://blog.youkuaiyun.com/LiveForCode/article/details/118357866</guid><author>LiveForCode</author><pubDate>Wed, 30 Jun 2021 12:10:44 +0800</pubDate><description><![CDATA[快速入门
开发步骤

添加 MyBatis 相关依赖
创建数据库数据表
创建对应实体类
编写映射文件 Mapper.xml
编写核心配置文件 SqlMapConfig.xml
编写测试类以及相关测试方法

环境搭建


引入 MyBatis 以及其他相关依赖


添加 Maven 编译信息
&lt;properties&gt;
    &lt;maven.compiler.encode&gt;UTF-8&lt;/maven.compiler.encode&gt;
    &lt;maven.compiler]]></description><category></category></item></channel></rss>