<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Soinice的博客]]></title><description><![CDATA[Stay Hungry,Stay Foolish./*面向百度开发*/]]></description><link>https://blog.youkuaiyun.com/Soinice</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Soinice]]></copyright><item><title><![CDATA[Linux基础命令之 grep 过滤需要的日志]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/123350005</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/123350005</guid><author>Soinice</author><pubDate>Tue, 08 Mar 2022 19:18:12 +0800</pubDate><description><![CDATA[使用 grep 过滤需要的日志
grep 命令几个常用的参数




参数
注释
用法




–color
匹配到的数据变红
grep --color ‘要匹配的内容’


-A
查看后几行数据
查看匹配的行的后十行：grep -A 10 ‘需要匹配的内容’


使用 grep 搜索关键字
搜索日志中所有包含 appid 的内容
cat access_log.2022-02-08-14.log | grep 'appid'

或者
 cat access_log.2022-02-08-14.log | g]]></description><category></category></item><item><title><![CDATA[Java 反射之Class类获取方法信息(返回值、方法名、参数)]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/121252731</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/121252731</guid><author>Soinice</author><pubDate>Wed, 10 Nov 2021 17:24:18 +0800</pubDate><description><![CDATA[Class类获取方法信息(返回值、方法名、参数)
获取类的全名称
    @Test
    public void getTest2() {
        Class&lt;Student&gt; studentClass = Student.class;
        // 获取类的全名称
        System.out.println("获取类的全名称：" + studentClass.getName());
    }

获取返回值方法名以及参数
一个成员方法就是一个 Method对象。
]]></description><category></category></item><item><title><![CDATA[Java 反射之Class类的使用]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/121252672</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/121252672</guid><author>Soinice</author><pubDate>Wed, 10 Nov 2021 17:22:41 +0800</pubDate><description><![CDATA[Class类的使用
基本的数据类型的类类型
    @Test
    public void getTest() {
        Class&lt;Integer&gt; integerClass = int.class;
        Class&lt;String&gt; stringClass = String.class;
        // Double 类的类类型（封装过的类类型)
        Class&lt;Double&gt; doubleClass = Double.cla]]></description><category></category></item><item><title><![CDATA[Java 反射之Class类动态加载类的用法]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/121230819</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/121230819</guid><author>Soinice</author><pubDate>Tue, 09 Nov 2021 16:18:38 +0800</pubDate><description><![CDATA[Class类动态加载类的用法
Class.forName(“类的路径”)
不仅仅表示了类的类型，还表示了动态加载类。输入类的路径，就可以获取到类的方法。在这里要区分编译和运行：

编译时加载类静态加载类
运行时加载类动态加载类

静态加载类
new创建对象是 静态加载类，在编译时就需要加载可能使用的类。
问：那么我们能不能在使用到类就进行加载？
答：使用动态加载类就可以完成。
举例：
        Student student = new Student();
        student.getSt]]></description><category></category></item><item><title><![CDATA[Java 反射之Class类 (3种实现方式)]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/121106397</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/121106397</guid><author>Soinice</author><pubDate>Wed, 03 Nov 2021 18:46:25 +0800</pubDate><description><![CDATA[反射
java 反射机制就是在程序运行状态中，对于任意一个类，都能够知道这个类的属性和方法。对于任意一个对象，都能够调用到他们的属性和方法。这种动态获取信息以及动态调用对象的方法的功能成为 java 语言的反射机制。
实现方式

Class 类的使用；
方法的反射；
成员变量的反射；
构造函数的反射；
Java 类加载机制；

Class 类

...]]></description><category></category></item><item><title><![CDATA[macOS Big Sur（配置篇）：iTerm2 关于zsh 目录权限问题的解决]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/118971550</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/118971550</guid><author>Soinice</author><pubDate>Wed, 21 Jul 2021 17:22:10 +0800</pubDate><description><![CDATA[问题描述


ast login: Wed Jul 21 16:10:52 on ttys000
[oh-my-zsh] Insecure completion-dependent directories detected:
drwxrwxrwx  3 imenger  admin  96  7 21  2019 /usr/local/share/zsh
drwxrwxrwx  3 imenger  admin  96  7 16 18:38 /usr/local/share/zsh/site-functi]]></description><category></category></item><item><title><![CDATA[macOS Big Sur（软件篇）：Redis 安装]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/118811809</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/118811809</guid><author>Soinice</author><pubDate>Fri, 16 Jul 2021 19:37:40 +0800</pubDate><description><![CDATA[下载

官网地址：https://redis.io/download

Download---Stable---Download 6.2.4，下载最新稳定版，这里是6.2.4。



安装

下载完成后，打开命令行工具，执行解压命令:


tar zxvf redis-6.2.4.tar.gz


将解压后文件夹放到/usr/local


mv redis-6.2.4 /usr/local/


切换到相应目录


cd /usr/local/redis-6.2.4/

编译测试


sudo make.]]></description><category></category></item><item><title><![CDATA[实战Spring高级装配中bean的作用域]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/115765022</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/115765022</guid><author>Soinice</author><pubDate>Fri, 16 Apr 2021 18:42:20 +0800</pubDate><description><![CDATA[Spring应用上下文中所有bean都是作为以单例(singleton)的形式创建的。也就是说，不管给定的一个bean被注入到其他bean 多少次，每次所注入的都是同一个实例。


目录

Spring 多种作用域

使用会话和请求作用域

proxyMode = ScopedProxyMode.INTERFACES

在XML中声明作用域代理

如何指定作用域的代理模式

因为类很容易改变属性， 重用是不安全的，在这种情况下，单例就不能用了。

Spring 多种作用域

单例：在整个应用中，只创建be.]]></description><category></category></item><item><title><![CDATA[实战Spring高级装配中处理自动装配的歧义性]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/115702645</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/115702645</guid><author>Soinice</author><pubDate>Wed, 14 Apr 2021 17:35:31 +0800</pubDate><description><![CDATA[目录

自动装配的歧义性怎么出现的？

如何处理自动装配的歧义性？

首选 bean

限定自动装配的bean

如何创建自定义的限定符

使用自定义的限定符注解

问题描述

总结

自动装配的歧义性怎么出现的？

产生自动装配的歧义性的原因是，出现了多个 bean 匹配所需的结果。

比如：


    @Autowired
    public void setDessert(Dessert dessert){
        this.dessert = dessert;
    }


将Dess]]></description><category></category></item><item><title><![CDATA[实战Spring高级装配中条件化的bean]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/115631186</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/115631186</guid><author>Soinice</author><pubDate>Mon, 12 Apr 2021 19:00:59 +0800</pubDate><description><![CDATA[条件化的 bean，当某个条件触发时创建的 bean。


目录



什么是条件化的 bean

条件化地配置bean

ConditionContext 接口

AnnotatedTypeMetadata 接口

@Profile注解

总结

什么是条件化的 bean

比如：

当应用中包含了特定的库，才创建。
	当某个 非当前 bean 声明后，才创建。
	当某个 特定的环境变量设置后，才创建。
Spring 4 之前很难实现，Spring 4引入了一个新的@Conditional注解。

条..]]></description><category></category></item><item><title><![CDATA[实战Spring高级装配中环境与profile]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/115556949</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/115556949</guid><author>Soinice</author><pubDate>Mon, 12 Apr 2021 17:22:30 +0800</pubDate><description><![CDATA[在开发软件的时候，有一个很大的挑战就是将应用程序从一个环境迁移到另外一个环境。开发阶段中，某些环境相关做法可能并不适合迁移到

生产环境中，甚至即便迁移过去也无法正常工作。数据库配置、加密算法以及与外部系统的集成是跨环境部署时会发生变化的几个典型例子。



...]]></description><category></category></item><item><title><![CDATA[实战Spring通过XML装配bean]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/114066236</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/114066236</guid><author>Soinice</author><pubDate>Thu, 25 Feb 2021 11:44:16 +0800</pubDate><description><![CDATA[在装配bean的时候，还有一种可选方案。官方可能认为这种方式不好，因为非 java 代码配置，但是每个人的看法和喜好不同，也不是说不能选择的。


创建XML配置规范

在使用JavaConfig的时候，这意味着要创建一个带 有@Configuration注解的类，而在XML配置中，这意味着要创建一个XML文件，并且要以&lt;beans&gt;元素为根。

最为简单的Spring XML配置如下所示:


&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;.]]></description><category></category></item><item><title><![CDATA[实战Spring通过Java代码装配bean]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/114027717</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/114027717</guid><author>Soinice</author><pubDate>Wed, 24 Feb 2021 18:38:24 +0800</pubDate><description><![CDATA[在很多场景下通过组件扫描和自动装配实现Spring的自动化配置是更为推荐的方式，但有时候自动化配置的方案行不通，也就是自定义的时候。

比如说，你想要将第三方库中的组件装配到你的应用中，在这种情况下，是没有办法在它的类上添加@Component和@Autowired注解的，因此就不能使用自动化装配的方案了。


进行显式配置的时候，有两种可选方案:Java和XML。

显式配置时，JavaConfig是更好的方案，因为它更为强大、类型安全并且对重构起来更加方便。因为它本身就是Java代码，就像 应用程序中.]]></description><category></category></item><item><title><![CDATA[实战Spring自动化装配 bean]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/113994466</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/113994466</guid><author>Soinice</author><pubDate>Tue, 23 Feb 2021 18:40:30 +0800</pubDate><description><![CDATA[创建应用对象之间协作关系的行为通常称为装配(wiring)，这也是依赖注入(DI)的本质。


Spring配置的可选方案

Spring 提供了三种主要的装配机制:

在XML中进行显式配置
	在Java中进行显式配置
	隐式的bean发现机制和自动装配
以上方案根据自己喜好来选择即可，最主要的是适合自己的项目即可，当然可以混搭，你可以选择使用XML装配一些bean，使用Spring基于Java的配置(JavaConfig)来装配另一些bean，而将剩余的 bean让Spring去自动发现。

如果必须.]]></description><category></category></item><item><title><![CDATA[Cannot add task ‘wrapper‘ as a task with that name already exists.]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/113995847</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/113995847</guid><author>Soinice</author><pubDate>Tue, 23 Feb 2021 17:21:24 +0800</pubDate><description><![CDATA[问题描述

构建 Spring A4 源码时，出现：


Build file '/CodeCollection/SpringiA4/SpringiA4_SourceCode/Chapter_02/stereo-autoconfig/build.gradle' line: 22

A problem occurred evaluating root project 'stereo-autoconfig'.
&gt; Cannot add task 'wrapper' as a task with that ]]></description><category></category></item><item><title><![CDATA[实战Spring4.0的新功能]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/113976360</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/113976360</guid><author>Soinice</author><pubDate>Tue, 23 Feb 2021 11:00:07 +0800</pubDate><description><![CDATA[目录

Spring的新功能

1.4.1 Spring 3.1新特性

1.4.2 Spring 3.2新特性

1.4.3 Spring 4.0新特性

Spring的新功能

Spring框架经历了3个 重要的发布版本——3.1、3.2以及现在的4.0——每个版本都带来了新的特性和增强，以简化应用程序的研发。

3.1 比较经典，用的也比较多。

1.4.1 Spring 3.1新特性

3.1 主要是简化和改善配置，以及声明式缓存，mvc 增强。

为了解决各种环境下(如开发、测试和生产)选择不同配]]></description><category></category></item><item><title><![CDATA[log4j:WARN The content of element type “log4j:configuration“ must match “(renderer*,throwableRendere]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/113586642</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/113586642</guid><author>Soinice</author><pubDate>Wed, 03 Feb 2021 10:31:10 +0800</pubDate><description><![CDATA[问题描述

log4j:WARN Continuable parsing error 185 and column 23
log4j:WARN The content of element type "log4j:configuration" must match "(renderer*,throwableRenderer?,appender*,plugin*,(category|logger)*,root?,(categoryFactory|loggerFactory)?)".


出现在第 185 行.]]></description><category></category></item><item><title><![CDATA[Java工具类解决Spring初始化ApplicationContext为null的问题]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/112970464</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/112970464</guid><author>Soinice</author><pubDate>Thu, 21 Jan 2021 20:18:48 +0800</pubDate><description><![CDATA[今天临时加了个需求，我想着用 Spring 来装载，配合 localcache 这样就能做到无感在 web 启动的时候预先将需要的数据加载到内存中。以便于以后直接拿来使用，不用再次进行加载。


ApplicationContextAware 初始化

通过它Spring容器会自动把上下文环境对象调用ApplicationContextAware接口中的setApplicationContext方法，我们在ApplicationContextAware的实现类中，就可以通过这个上下文环境对象得到Spri..]]></description><category></category></item><item><title><![CDATA[实战Spring容器(container)容纳你的Bean]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/112900824</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/112900824</guid><author>Soinice</author><pubDate>Wed, 20 Jan 2021 18:07:45 +0800</pubDate><description><![CDATA[Spring容器负责创建对象，装配它们，配置它们并管理它们的整个生命周期，从生存到死亡。


目录

什么是容器

容器实现方式

1.2.1 使用应用上下文

1.2.2 bean的生命周期

Spring bean 生命周期详解

什么是容器

Spring 容器使用 DI 管理构成应用的组件，他会创建相互协作的组件之间的关联。同时容器不仅仅只有一个。

容器实现方式

bean 工厂 以及应用上下文 两种不同的类型。一般情况下 应用上下文 是我们常用的类型。

1.2.1 使用应用上下文

Spri.]]></description><category></category></item><item><title><![CDATA[Redis jedis 2.9版本部分属性变更]]></title><link>https://blog.youkuaiyun.com/Soinice/article/details/112565031</link><guid>https://blog.youkuaiyun.com/Soinice/article/details/112565031</guid><author>Soinice</author><pubDate>Wed, 13 Jan 2021 14:41:19 +0800</pubDate><description><![CDATA[1、控制一个pool可分配多少个jedis实例

　　“maxActive” -&gt; “maxTotal”

2、最大建立连接等待时间。如果超过此时间将接到异常。设为-1表示无限制。

　　“maxWait” -&gt; “maxWaitMillis”
]]></description><category></category></item></channel></rss>