<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JJ_Notebook的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JJ_Notebook</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JJ_Notebook]]></copyright><item><title><![CDATA[Mysql 忘记密码]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/119304049</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/119304049</guid><author>JJ_Notebook</author><pubDate>Sun, 01 Aug 2021 21:49:54 +0800</pubDate><description><![CDATA[Mysql 忘记密码
第一步：先关掉服务器
net stop mysql
第二步：创建一个内含一条密码修改命令的文本文件

mysqlc.txt中的内容为：ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘12345’;
此处12345即为新密码。
第三步：启动服务器并执行上述的密码修改命令文件
mysqld --init-file=D:\Application\Mysql8019\mysql-8.0.19-winx64\mysqlc.txt --console

第]]></description><category></category></item><item><title><![CDATA[【SpringMVC 笔记】6、请求处理的大致流程]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106549730</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106549730</guid><author>JJ_Notebook</author><pubDate>Thu, 04 Jun 2020 16:18:58 +0800</pubDate><description><![CDATA[请求处理的大致流程
1）所有请求过来，DispatcherServlet收到请求
2）调用doDispatch()方法进行处理

protected void doDispatch(HttpServletRequest request, HttpServletResponse response) throws Exception {
    HttpServletRequest processedRequest = request;
    HandlerExecutionChain mappedHandl]]></description><category></category></item><item><title><![CDATA[【SpringMVC 笔记】5、将数据传给页面的方法]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106528575</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106528575</guid><author>JJ_Notebook</author><pubDate>Wed, 03 Jun 2020 17:18:42 +0800</pubDate><description><![CDATA[目   录1）在方法处传入Map、Model、ModelMap2) 方法返回值为 ModelAndView对象3）SpringMVC 提供一个注解@SessionAttributes(只能标注在类上)可以让数据保存在session域中4) Spring mvc提供注解@ModelAttribute(可用在方法和参数上)
1）在方法处传入Map、Model、ModelMap
这些参数中保存的数据会放在请求域中，可以在页面获取${requestScope.msg}


三者的关系：Map、Model、Model]]></description><category></category></item><item><title><![CDATA[【SpingMVC 笔记】4、数据输出${requestScope.msg}获取不到值的解决方法]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106525606</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106525606</guid><author>JJ_Notebook</author><pubDate>Wed, 03 Jun 2020 15:39:49 +0800</pubDate><description><![CDATA[问题：SpingMVC中，${requestScope.msg}获取不到值

解决方法：jsp页面头部添加isELIgnored="false"
&lt;%@ page contentType="text/html;charset=UTF-8" 
    language="java"
    isELIgnored="false" %&gt;

]]></description><category></category></item><item><title><![CDATA[【SpringMVC 笔记】3、获取请求参数]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106524812</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106524812</guid><author>JJ_Notebook</author><pubDate>Wed, 03 Jun 2020 15:12:11 +0800</pubDate><description><![CDATA[目    录1.如何获取请求参数2.如何从页面发起PUT、DELETE请求(浏览器只支持POST、GET请求)，SpringMVC提供了对REST风格的支持3.乱码解决：CharacterEncodingFilter
1.如何获取请求参数
 * 默认方式：给方法参数写一个和请求参数名相同的变量，这个变量就用来接收请求参数的值
            &lt;a href="handle01?username=tomcat"&gt;参数请求1&lt;/a&gt;&lt;/br&gt;
            ]]></description><category></category></item><item><title><![CDATA[【SpringMVC 笔记】2、@RequestMapping的属性]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106499087</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106499087</guid><author>JJ_Notebook</author><pubDate>Tue, 02 Jun 2020 16:55:40 +0800</pubDate><description><![CDATA[@RequestMapping是一个用来处理请求地址映射的注解，可用于类或方法上。
用于类上，表示类中的所有响应请求的方法都是以该地址作为父路径。


@RequestMapping属性
1、 value、method
value： 指定请求的实际地址，指定的地址可以是URI Template模式；
method：指定请求的method类型：(HTTP协议规定)GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH等；
2、 consumes、produces
consumes：指..]]></description><category></category></item><item><title><![CDATA[【SpringMVC 笔记】1、工程创建流程]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106494924</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106494924</guid><author>JJ_Notebook</author><pubDate>Tue, 02 Jun 2020 16:17:52 +0800</pubDate><description><![CDATA[1.pom.xml导包

核心容器包
web包
serlet包


&lt;properties&gt;
  &lt;project.build.sourceEncoding&gt;UTF-8&lt;/project.build.sourceEncoding&gt;
  &lt;maven.compiler.source&gt;1.7&lt;/maven.compiler.source&gt;
  &lt;maven.compiler.target&gt;1.7&lt;/maven.compiler.tar]]></description><category></category></item><item><title><![CDATA[【并发编程】单例模式：双重检查锁(DCL)方式中的volatile的运用]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106337594</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106337594</guid><author>JJ_Notebook</author><pubDate>Mon, 25 May 2020 17:14:43 +0800</pubDate><description><![CDATA[class Singleton{
  //  private static Singleton instance;
    private static volatile Singleton instance;
    private Singleton(){ }
    public static Singleton getInstance(){
        if (instance==null){
            //synchronized 同步代码块内的程序指令可以发生重排序
     ]]></description><category></category></item><item><title><![CDATA[【并发编程】多个线程交替输出的经典例题：wait/notify、await/signal 、park/unpark]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106328500</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106328500</guid><author>JJ_Notebook</author><pubDate>Mon, 25 May 2020 10:59:18 +0800</pubDate><description><![CDATA[package ConcurrentDemo;

//经典并发题：利用三个线程交替输出abcabcabcabc

import org.junit.Test;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.locks.Condition;
import java.util.concurrent.locks.LockSupport;
import java.util.concurrent.locks.ReentrantLoc]]></description><category></category></item><item><title><![CDATA[【并发编程】如何定位死锁]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106316359</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106316359</guid><author>JJ_Notebook</author><pubDate>Sun, 24 May 2020 16:32:08 +0800</pubDate><description><![CDATA[死锁：多个线程分别占用对方需要的同步资源不放弃，都在等待对方放弃。
死锁案例
以下案例演示了线程T1，T2出现死锁的情况：
线程T1在获得锁1的情况下还想获取线程T2拥有的锁2，而线程T2在拥有锁2的情况下还想获取线程1拥有的锁1。
public class DeadLockDemo {
    public static void main(String[] args) {
        Object obj1=new Object();
        Object obj2=new Object()]]></description><category></category></item><item><title><![CDATA[【并发编程】基本概念：进程与线程，并发与并行]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106216793</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106216793</guid><author>JJ_Notebook</author><pubDate>Tue, 19 May 2020 16:17:50 +0800</pubDate><description><![CDATA[进程与线程
进程

程序由指令和数据组成，但这些指令要运行，数据要读写，就必须将指令加载至CPU，数据加载至内存，在指令运行过程中还需要用到磁盘、网络等设备。
进程就是用来加载指令、管理内存、管理IO的。
当一个程序被运行，从磁盘加载这个程序的代码至内存，这时就开启了一个进程。程序是静态的代码，进程是执行中的程序，是动态的。
进程就可以视为程序的一个实例，大部分程序可以同时运行多个实例进程(例如记事本、画图、浏览器等) ，也有的程序只能启动一个实例进程(例如网易云音乐、360安全卫士等)。

线程

一个进]]></description><category></category></item><item><title><![CDATA[【Spring】spring中基于事务控制的API：PlatformTransactionManager的案例]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106108507</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106108507</guid><author>JJ_Notebook</author><pubDate>Fri, 15 May 2020 12:34:30 +0800</pubDate><description><![CDATA[Spring的事务管理都是基于AOP，它可以通过编程实现，也可以通过配置的方法实现。
Spring为我们提供了一套用于事务控制的API。

]]></description><category></category></item><item><title><![CDATA[【Spring】Spring基于纯注解的AOP事务控制案例]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106086197</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106086197</guid><author>JJ_Notebook</author><pubDate>Tue, 12 May 2020 22:57:54 +0800</pubDate><description><![CDATA[目录pom.xml配置数据库表格信息对应的java类DAO实现类Service层代码连接池控制类事务控制类配置类：替换xml文件测试代码
本案要解决的是一个简单的银行账户转账的问题
采用事务控制保证账户总金额的一致性，通过控制事务的提交和回滚避免转账过程中出现运行异常时带来的影响。
pom.xml配置
需要的jar包：

spring ioc容器:spring-context
数据库相关：mysql、dbutils、c3p0
AOP相关：aspectjweaver(处理切面表达式)
用于单元测试：(spri]]></description><category></category></item><item><title><![CDATA[【Spring】spring中基于xml的AOP案例]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106064554</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106064554</guid><author>JJ_Notebook</author><pubDate>Mon, 11 May 2020 22:53:34 +0800</pubDate><description><![CDATA[这里写目录标题pom配置文件目标对象：被代理对象通知类xml配置文件测试代码
先复习上一篇博客：
Spring中AOP相关的基础知识
https://blog.youkuaiyun.com/JJ_Notebook/article/details/106057865
pom配置文件
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="ht]]></description><category></category></item><item><title><![CDATA[【Spring】AOP基础知识：AOP相关术语]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106057865</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106057865</guid><author>JJ_Notebook</author><pubDate>Mon, 11 May 2020 17:06:30 +0800</pubDate><description><![CDATA[AOP相关术语

Joinpoint(连接点):
所谓连接点是指那些被拦截到的点。在 spring 中，这些点指的是方法，因为 spring 只支持方法类型的 连接点。
Pointcut(切入点):
所谓切入点是指我们要对哪些 Joinpoint 进行拦截的定义(在开发中并不是需要对所有的被代理对象的方法进行增强)。
Advice(通知/增强):
所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。
通知的类型：前置通知(执行连接点之前执行的操作)，后置通知(连接点之后)，异常通知，最终通知(]]></description><category></category></item><item><title><![CDATA[【Spring】spring和junit的整合]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106029807</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106029807</guid><author>JJ_Notebook</author><pubDate>Sat, 09 May 2020 23:50:59 +0800</pubDate><description><![CDATA[使用spring和junit整合的方式可以不用在每个测试单元中都创建ioc容器跟获取服务层Bean对象
步骤：

导入spring整合junit的jar(坐标)
使用Junit提供的一个注解把junit原有的main方法替换，替换成spring提供的@RunWith
---------&gt;@RunWith(SpringJUnit4ClassRunner.class)
告知spring的运行器，spring和ioc创建容器是基于xml还是注解，说明其位置
@ContextConfiguration
属性：]]></description><category></category></item><item><title><![CDATA[【Spring】基于注解的案例测试]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106029038</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106029038</guid><author>JJ_Notebook</author><pubDate>Sat, 09 May 2020 23:19:24 +0800</pubDate><description><![CDATA[基于上一篇博文，用注解的方式替代xml文件
用配置类替代xml文件
注解介绍


@Configuration 可以指明当前类为配置类，可以用来替代xml文件
注意：当该类作为AnnotationConfigApplicationContext对象的参数传入时可以省去该注解
例：ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfiguration.class);


@ComponentScan 指定spring在创]]></description><category></category></item><item><title><![CDATA[【Spring 】入门案例]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/105952150</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/105952150</guid><author>JJ_Notebook</author><pubDate>Sat, 09 May 2020 21:31:57 +0800</pubDate><description><![CDATA[Spring工具包下载地址：https://repo.spring.io/libs-release-local/org/springframework/spring/
参考博客：https://blog.youkuaiyun.com/sinat_32012145/article/details/77988423

]]></description><category></category></item><item><title><![CDATA[【Spring】基于xml的ioc案例测试]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106027750</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106027750</guid><author>JJ_Notebook</author><pubDate>Sat, 09 May 2020 21:29:57 +0800</pubDate><description><![CDATA[文章目录1. pom.xml配置2. 数据库表格对应的类2.1 数据库表格信息2.2 类3. 数据库DAO类4. Service层代码5. xml配置文件的设置测试代码
1. pom.xml配置
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan]]></description><category></category></item><item><title><![CDATA[【Spring】Spring中ioc的常用注解]]></title><link>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106001129</link><guid>https://blog.youkuaiyun.com/JJ_Notebook/article/details/106001129</guid><author>JJ_Notebook</author><pubDate>Fri, 08 May 2020 16:54:26 +0800</pubDate><description><![CDATA[xml文件中的配置
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
    &lt;beans xmlns="http://www.springframework.org/schema/beans"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xml...]]></description><category></category></item></channel></rss>