<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[cui1004的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/cui1004</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; cui1004]]></copyright><item><title><![CDATA[Mockito单元测试]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/120655835</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/120655835</guid><author>cui1004</author><pubDate>Fri, 08 Oct 2021 17:25:09 +0800</pubDate><description><![CDATA[Mockito单元测试
ElephantTest 类：
package ut;

import static org.mockito.BDDMockito.then;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.verify;
import sta]]></description><category></category></item><item><title><![CDATA[线程安全synchronized]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/120549597</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/120549597</guid><author>cui1004</author><pubDate>Wed, 29 Sep 2021 15:27:36 +0800</pubDate><description><![CDATA[线程安全synchronized
package thread;

/**
 * 线程安全：300个人拧200个螺丝
 * synchronized:关键字 同步锁
 * 1）修饰代码块：同步语句块 作用对象:调用同步语句块的对象
 * 2）修饰方法：同步方法 作用对象：调用同步方法的对象
 * 3）修饰静态方法： 作用对象：这个类的所有对象
 * 4）修饰类：作用对象：这个类的所有对象
 *
 * 当两个并发线程(thread1和thread2)访问同一个对象(runnable)中的synchronize]]></description><category></category></item><item><title><![CDATA[线程，线程池基础]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/120548833</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/120548833</guid><author>cui1004</author><pubDate>Wed, 29 Sep 2021 15:00:05 +0800</pubDate><description><![CDATA[线程，线程池基础
package thread;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 创建线程的三种方式：
 * 1）实现 Runnable接口
 * 2）继承Thread类
 * 3）通过Callable和Future创建线程
 * &lt;p&gt;
 * 线程资源必须通过线程池提供：使用线程的好处：减少创建和销毁线程所花的时间以及系统资源的开销，解决资源]]></description><category></category></item><item><title><![CDATA[java Stream流的筛选、排序]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/120547660</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/120547660</guid><author>cui1004</author><pubDate>Wed, 29 Sep 2021 14:15:36 +0800</pubDate><description><![CDATA[java Stream流的筛选、排序

package lambda_stream;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class Student {
    public int id;

    public String name;

    p]]></description><category></category></item><item><title><![CDATA[华为考试题2]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/117850629</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/117850629</guid><author>cui1004</author><pubDate>Sat, 12 Jun 2021 16:47:56 +0800</pubDate><description><![CDATA[华为考试题2
package com.cyl.enquiry.controller;

import java.nio.charset.StandardCharsets;
import java.util.Scanner;

/**
 * @author cuiyongling
 * @since V1.0.0
 * 2021-06-02 14:17
 */

public class Test5 {

    public static void main(String[] args) {
       ]]></description><category></category></item><item><title><![CDATA[硕士毕业论文页眉页脚页码设置]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/115802969</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/115802969</guid><author>cui1004</author><pubDate>Sun, 18 Apr 2021 13:21:59 +0800</pubDate><description><![CDATA[硕士毕业论文页眉页脚页码设置
最近在写论文是涉及到页码页眉的编辑，总是出错，最后得到解决方法，在此记录一下。
页码设计：
随机页面插入页码：

]]></description><category></category></item><item><title><![CDATA[thymeleaf中三元运算符嵌套写法]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/112062010</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/112062010</guid><author>cui1004</author><pubDate>Fri, 01 Jan 2021 17:34:35 +0800</pubDate><description><![CDATA[thymeleaf中三元运算符嵌套写法
  &lt;td th:text="${enquiry.categoryUniqueId}==1?'技术方案':(${enquiry.categoryUniqueId}==2?'交货周期':'报价')"&gt;&lt;/td&gt;

 &lt;table class="table table-striped table-sm"&gt;
                    &lt;thead&gt;
                    &lt;tr&gt;
 ]]></description><category></category></item><item><title><![CDATA[登录拦截器]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/110285354</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/110285354</guid><author>cui1004</author><pubDate>Sat, 28 Nov 2020 16:18:50 +0800</pubDate><description><![CDATA[登录拦截器
1、将登陆用户的用户名放到session中，用于后面的登录拦截(只要登陆了用户就会在session中存在)
    //@RequestMapping(value = "/user/login",method = RequestMethod.POST)
    @PostMapping(value = "/user/login")
    public String login(@RequestParam("username") String username,
                ]]></description><category></category></item><item><title><![CDATA[防止重复提交表单：重定向]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/110285189</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/110285189</guid><author>cui1004</author><pubDate>Sat, 28 Nov 2020 16:05:39 +0800</pubDate><description><![CDATA[防止重复提交表单：重定向
    //@RequestMapping(value = "/user/login",method = RequestMethod.POST)
    @PostMapping(value = "/user/login")
    public String login(@RequestParam("username") String username,
                        @RequestParam("password") String passwo]]></description><category></category></item><item><title><![CDATA[开发期间：模板引擎页面修改后，实时生效]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/110278352</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/110278352</guid><author>cui1004</author><pubDate>Sat, 28 Nov 2020 15:09:29 +0800</pubDate><description><![CDATA[开发期间：模板引擎页面修改后，实时生效
1、禁用模板引擎的缓存：
#开发期间模板引擎页面修改以后，要实时生效:禁用模板引擎的缓存
spring.thymeleaf.cache=false

2、页面修改之后ctrl+F9，进行重新编译

...]]></description><category></category></item><item><title><![CDATA[SpringBoot中的国际化]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109696341</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109696341</guid><author>cui1004</author><pubDate>Sat, 14 Nov 2020 21:08:05 +0800</pubDate><description><![CDATA[SpringBoot中的国际化
1）、编写国际化配置文件：




2）、SpringBoot自动配置好了管理国际化资源文件的组件：
3）、去页面获取国际化的值：

&lt;!DOCTYPE html&gt;
&lt;html lang="en" xmlns:th="http://www.thymeleaf.org"&gt;
	&lt;head&gt;
		&lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
		]]></description><category></category></item><item><title><![CDATA[Spring Boot中扩展SpringMVC的功能]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109695074</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109695074</guid><author>cui1004</author><pubDate>Sat, 14 Nov 2020 19:31:28 +0800</pubDate><description><![CDATA[Spring Boot中扩展SpringMVC的功能
之前可以通过创建xml配置文件进行SpringMVC的扩展：springmvc.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" xmlns:mvc="http:/]]></description><category></category></item><item><title><![CDATA[Spring Boot 中SpringMVC的自动配置]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109689432</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109689432</guid><author>cui1004</author><pubDate>Sat, 14 Nov 2020 13:00:27 +0800</pubDate><description><![CDATA[Spring Boot 中SpringMVC的自动配置
在springboot1.0中编写webmvc的配置类需要继承WebMvcAutoConfigurationAdapter。
在springboot2.0中编写webmvc的配置类需要实现WebMvcConfigurer。
Spring Boot 自动配置好了SpringMVC
以下是SpringBoot对SpringMVC的默认配置:（WebMvcAutoConfiguration）

自己添加的格式化器转换器，我们只需要放在容器中即可



...]]></description><category></category></item><item><title><![CDATA[使用Maven下载客户端依赖项：WebJars]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109689094</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109689094</guid><author>cui1004</author><pubDate>Sat, 14 Nov 2020 12:18:23 +0800</pubDate><description><![CDATA[使用Maven下载客户端依赖项：WebJars
使用基于JVM的构建工具（例如Maven，Gradle，sbt等）来下载客户端依赖项:WebJars
WebJars
例如：jQuery和Bootstrap
&lt;dependency&gt;
    &lt;groupId&gt;org.webjars&lt;/groupId&gt;
    &lt;artifactId&gt;jquery&lt;/artifactId&gt;
    &lt;version&gt;3.5.1&lt;/version&gt]]></description><category></category></item><item><title><![CDATA[Spring Boot 模板引擎：Thymeleaf的使用]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109649858</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109649858</guid><author>cui1004</author><pubDate>Thu, 12 Nov 2020 18:18:31 +0800</pubDate><description><![CDATA[Spring Boot 模板引擎：Thymeleaf的使用
模板引擎：JSP、Velocity、Freemarker、Thymeleaf

SpringBoot推荐的Thymeleaf：语法更简单，功能更强大。
1、引入thymeleaf：
   &lt;!--引入Thymeleaf模块--&gt;
        &lt;dependency&gt;
            &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
          ]]></description><category></category></item><item><title><![CDATA[SpringBoot对静态资源的映射规则]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109609199</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109609199</guid><author>cui1004</author><pubDate>Tue, 10 Nov 2020 23:00:54 +0800</pubDate><description><![CDATA[SpringBoot对静态资源的映射规则
@ConfigurationProperties(
    prefix = "spring.resources",
    ignoreUnknownFields = false
)
public class ResourceProperties {
	//可以设置和静态资源有关的参数
    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = new String[]
    {"classp]]></description><category></category></item><item><title><![CDATA[使用SpringBoot进行Web开发]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109607170</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109607170</guid><author>cui1004</author><pubDate>Tue, 10 Nov 2020 20:54:40 +0800</pubDate><description><![CDATA[使用SpringBoot进行Web开发
1. 创建SpringBoot应用，选中我们需要的模块；
2. SpringBoot已经默认将这些场景配置好了，只需要在配置文件中指定少量配置就可以运行起来 ；
3. 自己编写业务代码。
最重要：自动配置原理
这个场景SpringBoot帮我们配置了什么？能不能修改？能修改哪些配置？能不能扩展？xxx

xxxxAutoConfiguration：帮我们给容器中自动配置组件；
xxxxProperties:配置类来封装配置文件的内容；


...]]></description><category></category></item><item><title><![CDATA[Spring Boot切换日志框架]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109603453</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109603453</guid><author>cui1004</author><pubDate>Tue, 10 Nov 2020 17:38:34 +0800</pubDate><description><![CDATA[Spring Boot切换日志框架
我们可以按照slf4j的日志适配图，进行相关的切换：

slf4j+log4j的方式来替换以前slf4j+logback：
&lt;dependency&gt;
	&lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
	&lt;artifactId&gt;spring‐boot‐starter‐web&lt;/artifactId&gt;
	&lt;exclusions&gt;
		&lt;exclusion&gt]]></description><category></category></item><item><title><![CDATA[Spring Boot中指定日志的配置文件]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109602914</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109602914</guid><author>cui1004</author><pubDate>Tue, 10 Nov 2020 17:18:57 +0800</pubDate><description><![CDATA[Spring Boot中指定日志的配置文件
给类路径下放上每个日志框架自己的配置文件即可，这样SpringBoot就不使用他默认配置的了。

logback.xml：直接就被日志框架识别了。
logback-spring.xml：日志框架就不直接加载日志的配置项，由SpringBoot解析日志配置，可以使用SpringBoot的高级Profile功能。
&lt;springProfile name="staging"&gt;
&lt;!‐‐ configuration to be enabled when ]]></description><category></category></item><item><title><![CDATA[Spring Boot日志使用]]></title><link>https://blog.youkuaiyun.com/cui1004/article/details/109602209</link><guid>https://blog.youkuaiyun.com/cui1004/article/details/109602209</guid><author>cui1004</author><pubDate>Tue, 10 Nov 2020 17:09:21 +0800</pubDate><description><![CDATA[Spring Boot日志使用
默认配置
SpringBoot默认帮我们配置好了日志
package com.cyl.springboot;

import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class SpringBo]]></description><category></category></item></channel></rss>