<?xml version="1.0" encoding="utf-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><title>高久峰个人技术博客，为自己加油</title><link>https://gaojiufeng.cn/</link><description></description><item><title>Java对Springboot获取bean和判断bean是否存在的封装</title><link>https://gaojiufeng.cn/?id=7510351</link><description>&lt;p&gt;今天在项目中需要根据不同客户定制不同的代码逻辑，于是我在Enum中定义客户代码和执行的bean，查阅资料了解到获取Bean和判断Bean是否存在的方式如下：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;// 获取bean &lt;/span&gt;
applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;beanClass&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;//判断bean&lt;/span&gt;
applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;containsBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;beanClass&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;但是我不想在代码中加一堆注解，例如下面的代码：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;@Autowired
&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;private&lt;/span&gt; ApplicationContext applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;于是封装一个bean的工具类：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;/**
 * @author gaojiufeng
 * @Description
 * @date 2023-09-12
 */&lt;/span&gt;
@Component
&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;class&lt;/span&gt; &lt;span class=&quot;token class-name&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;SpringUtil&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;implements&lt;/span&gt; &lt;span class=&quot;token class-name&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;ApplicationContextAware&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;

    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;private&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; ApplicationContext applicationContext &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;

    @Override
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;setApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;ApplicationContext applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; throws BeansException &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;SpringUtil&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;applicationContext &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;==&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
            SpringUtil&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;applicationContext &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
        &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;//获取applicationContext&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; ApplicationContext &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;//通过name获取 Bean.&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; Object &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot; style=&quot;list-style: inherit;&quot;&gt;String name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;//通过class获取Bean.&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot; style=&quot;list-style: inherit;&quot;&gt;Class&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; clazz&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;clazz&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;//通过name,以及Clazz返回指定的Bean&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot; style=&quot;list-style: inherit;&quot;&gt;String name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; Class&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;T&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; clazz&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; clazz&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;

    &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;/**
     * 判断bean是否存在
     *
     * @param name-bean名称
     * @return 返回bean实体
     */&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;public&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;static&lt;/span&gt; boolean &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;containsBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token parameter&quot; style=&quot;list-style: inherit;&quot;&gt;String name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
        &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;containsBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
    &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;ApplicationContextAware是一个接口，它可以用于在Spring Boot应用程序中获取并使用ApplicationContext对象。当一个类实现了ApplicationContextAware接口并实现了对应的方法时，Spring容器会自动将当前应用程序的ApplicationContext对象注入到该类中。&lt;/p&gt;&lt;p&gt;具体而言，ApplicationContextAware接口定义了一个方法：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;void&lt;/span&gt; &lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;setApplicationContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;ApplicationContext applicationContext&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; throws BeansException&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;当Spring容器实例化一个实现了ApplicationContextAware接口的bean时，会调用该bean的setApplicationContext()方法，并将ApplicationContext对象作为参数传递进去。&lt;/p&gt;&lt;p&gt;通过实现ApplicationContextAware接口并重写setApplicationContext()方法，我们可以在Spring容器初始化bean时获得应用程序的ApplicationContext实例，从而在需要的地方使用它。现在我们可以愉快的进行下面操作：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;// 检查bean&lt;/span&gt;
String name &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;&quot;gaojiufeng&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;!&lt;/span&gt;SpringUtil&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;containsBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;{&lt;/span&gt;
    &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;throw&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;BusinessException&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;&quot;Bean不存在&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;}&lt;/span&gt;    &lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;&lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;// 获取bean&lt;/span&gt;
String name &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;&quot;liyanru&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;return&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;ILogService&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; SpringUtil&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getBean&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;name&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description><pubDate>Tue, 12 Sep 2023 16:25:57 +0800</pubDate></item><item><title>使用Java Collections.singletonList快速创建一个只包含一个元素的List</title><link>https://gaojiufeng.cn/?id=7510350</link><description>&lt;p&gt;Java 中的 Collections 类是集合框架的一部分，该类提供了许多实用的方法来操作集合类对象。其中，单例列表（singletonList）是一个非常有用的方法，可以创建一个只包含一个元素的不可修改列表。这篇文章将介绍 singletonList 的使用和优点。&lt;/p&gt;&lt;p&gt;一、使用&lt;/p&gt;&lt;p&gt;Collections.singletonList() 方法接受一个元素作为参数，并返回一个包含该元素的不可修改列表。下面是使用该方法的示例代码：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;String str &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;&quot;李燕茹&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
List&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;lt;&lt;/span&gt;String&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; list &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; Collections&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;singletonList&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;str&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
System&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;out&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;list&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;list-style: inherit; position: absolute; pointer-events: none; top: 0px; left: -3.8em; width: 3em; letter-spacing: -1px; border-right: 1px solid rgb(153, 153, 153); user-select: none;&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;复制&lt;/div&gt;&lt;p&gt;输出结果为：李燕茹&lt;/p&gt;&lt;p&gt;如果我们尝试修改 singletonList 中的元素，则会抛出 UnsupportedOperationException 异常，因为 singletonList 是不可修改的。例如：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;list&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;&quot;其他女孩&quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt; &lt;span class=&quot;token comment&quot; style=&quot;list-style: inherit; color: rgb(153, 153, 153);&quot;&gt;// throw UnsupportedOperationException&lt;/span&gt;&lt;span aria-hidden=&quot;true&quot; class=&quot;line-numbers-rows&quot; style=&quot;list-style: inherit; position: absolute; pointer-events: none; top: 0px; left: -3.8em; width: 3em; letter-spacing: -1px; border-right: 1px solid rgb(153, 153, 153); user-select: none;&quot;&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;复制&lt;/div&gt;&lt;p&gt;二、优点和便捷性&lt;/p&gt;&lt;p&gt;1.简洁明了&lt;/p&gt;&lt;p&gt;singletonList 方法非常简洁明了，可以快速创建一个只包含一个元素的不可修改列表。&amp;nbsp;&lt;/p&gt;&lt;p&gt;2.节省内存空间&lt;/p&gt;&lt;p&gt;由于 singletonList 只包含一个元素，因此在创建大量只包含一个元素的列表时，使用 singletonList 可以节省大量的内存空间。&lt;/p&gt;&lt;p&gt;3.避免 null 值&lt;/p&gt;&lt;p&gt;使用 singletonList 方法可以避免添加 null 元素的问题，因为当参数为 null 时，该方法会抛出 NullPointerException 异常。&lt;/p&gt;&lt;p&gt;4.安全可靠&lt;/p&gt;&lt;p&gt;由于 singletonList 是不可修改的，可以避免在多线程环境下出现不可预期的结果。因此，使用 singletonList 可以使代码更加安全可靠。&lt;/p&gt;&lt;p&gt;综上所述，singletonList 方法具有简洁明了、节省内存空间、避免 null 值、安全可靠等优点和便捷性，在开发过程中应该尽可能使用该方法来提高代码的效率和可靠性。&lt;/p&gt;</description><pubDate>Mon, 11 Sep 2023 22:49:03 +0800</pubDate></item><item><title>php使用symfony/browser-kit库模拟浏览器行为</title><link>https://gaojiufeng.cn/?id=7510349</link><description>&lt;p&gt;Symfony/BrowserKit是一个PHP库，它可以模拟浏览器行为，用于测试Web应用程序。本教程将介绍如何使用Symfony/BrowserKit库来测试Web应用程序。&lt;/p&gt;&lt;h2&gt;安装&lt;/h2&gt;&lt;p&gt;在使用Symfony/BrowserKit之前，需要安装它。你可以通过Composer来安装它：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;composer require symfony&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;/&lt;/span&gt;browser&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;kit&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个命令会安装最新版本的Symfony/BrowserKit库。&lt;/p&gt;&lt;h2&gt;使用&lt;/h2&gt;&lt;p&gt;现在我们已经安装了Symfony/BrowserKit，下面让我们看看如何使用它。&lt;/p&gt;&lt;h3&gt;创建客户端对象&lt;/h3&gt;&lt;p&gt;首先，在你的测试文件中创建一个客户端对象。这个对象将模拟浏览器行为。&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;use Symfony\Component\BrowserKit\Client&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;

$client &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;Client&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3&gt;发送HTTP请求&lt;/h3&gt;&lt;p&gt;使用客户端对象发送HTTP请求：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$crawler &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'GET'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'http://example.com'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个请求将返回一个Crawler对象。Crawler是Symfony的另一个组件，用于解析HTML和XML文档。&lt;/p&gt;&lt;h3&gt;表单提交&lt;/h3&gt;&lt;p&gt;如果要向&lt;a href=&quot;https://cloud.tencent.com/act/pro/promotion-cvm?from_column=20065&amp;amp;from=20065&quot; target=&quot;_blank&quot;&gt;服务器&lt;/a&gt;提交表单，可以使用submit方法：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$form &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $crawler&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;selectButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'Save'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;form&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
$form&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'username'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'foo'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
$form&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'password'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;]&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'bar'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;

$crawler &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;submit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;$form&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个代码段将模拟提交名为“Save”的按钮的表单，并将用户名和密码设置为“foo”和“bar”。&lt;/p&gt;&lt;h3&gt;访问链接&lt;/h3&gt;&lt;p&gt;要访问链接，可以使用clickLink方法：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$link &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $crawler&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;selectLink&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'Click Here'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
$crawler &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;click&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;$link&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个代码段将查找名为“Click Here”的链接，并单击它。&lt;/p&gt;&lt;h3&gt;检查响应&lt;/h3&gt;&lt;p&gt;可以使用getResponse方法来检查服务器的响应：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$response &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&lt;/span&gt; $client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getResponse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
$&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;assertEquals&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;200&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; $response&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getStatusCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;
$&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;assertTrue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;$crawler&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;filter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'html:contains(&quot;Hello World&quot;)'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;token number&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个代码段将检查服务器是否返回了HTTP状态码200，以及响应是否包含“Hello World”文本。&lt;/p&gt;&lt;h3&gt;处理cookie&lt;/h3&gt;&lt;p&gt;BrowserKit还支持HTTP cookie。使用setCookie方法设置cookie：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;getCookieJar&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;list-style: inherit; color: rgb(204, 153, 205);&quot;&gt;new&lt;/span&gt; &lt;span class=&quot;token class-name&quot; style=&quot;list-style: inherit; color: rgb(248, 197, 85);&quot;&gt;Cookie&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'my_cookie'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'my_cookie_value'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个代码段将创建一个名为“my_cookie”的cookie，并将其值设置为“my_cookie_value”。&lt;/p&gt;&lt;h3&gt;附加请求头&lt;/h3&gt;&lt;p&gt;如果需要在请求中添加自定义标头，可以使用addHeader方法：&lt;/p&gt;&lt;div style=&quot;margin: 0px; padding: 0px; position: relative;&quot;&gt;&lt;pre&gt;&lt;code&gt;$client&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;list-style: inherit; color: rgb(240, 141, 73);&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'GET'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'http://example.com'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt; &lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;[&lt;/span&gt;
    &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'HTTP_USER_AGENT'&lt;/span&gt; &lt;span class=&quot;token operator&quot; style=&quot;list-style: inherit; color: rgb(103, 205, 204);&quot;&gt;=&amp;gt;&lt;/span&gt; &lt;span class=&quot;token string&quot; style=&quot;list-style: inherit; color: rgb(126, 198, 153);&quot;&gt;'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:58.0) Gecko/20100101 Firefox/58.0'&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;,&lt;/span&gt;
&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;list-style: inherit;&quot;&gt;;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;这个代码段将向HTTP请求添加自定义User-Agent标头。&lt;/p&gt;&lt;h2&gt;结论&lt;/h2&gt;&lt;p&gt;Symfony/BrowserKit是一个非常强大的库，用于测试Web应用程序。它允许你模拟浏览器行为，提交表单，单击链接并检查服务器响应。希望这个教程对你有所帮助，让你更好地了解Symfony/BrowserKit的使用。&lt;/p&gt;</description><pubDate>Sun, 10 Sep 2023 14:39:28 +0800</pubDate></item><item><title>民间文学在世界各国有不同的叫法，在日本被称为（    ）</title><link>https://gaojiufeng.cn/?id=7510348</link><description>&lt;p&gt;民间文学在世界各国有不同的叫法，在日本被称为（    ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.“民间文学”
B.“folklore”       ”
C.“劳动人民的口头创作”
D.“口承文艺
&lt;/pre&gt;正确答案D</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>古代中国神话中以哪个人物为中心（     ）</title><link>https://gaojiufeng.cn/?id=7510347</link><description>&lt;p&gt;古代中国神话中以哪个人物为中心（     ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.如来
B.天帝
C.西王母
D.菩提老祖
&lt;/pre&gt;正确答案B</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>曾经指出，“万物有灵观”是神话形成的心理基础的是（     ）</title><link>https://gaojiufeng.cn/?id=7510346</link><description>&lt;p&gt;曾经指出，“万物有灵观”是神话形成的心理基础的是（     ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.英国学者
B.美国学者
C.德国学者
D.法国学者
&lt;/pre&gt;正确答案A</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>将神话思维的特征概括为直觉性、情感性和神秘性的是（     ）</title><link>https://gaojiufeng.cn/?id=7510345</link><description>&lt;p&gt;将神话思维的特征概括为直觉性、情感性和神秘性的是（     ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.马克思
B.列维－布留尔
C.卡西尔
D.汤普森
&lt;/pre&gt;正确答案C</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>《民间文学母题索引》的作者是（    ）</title><link>https://gaojiufeng.cn/?id=7510344</link><description>&lt;p&gt;《民间文学母题索引》的作者是（    ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.马克思
B.列维－布留尔
C.卡西尔
D.汤普森
&lt;/pre&gt;正确答案D</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>民间文学的基本特征有（     ）</title><link>https://gaojiufeng.cn/?id=7510343</link><description>&lt;p&gt;民间文学的基本特征有（     ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.集体性
B.口头性
C.书面性
D.变异性
E.传承性
&lt;/pre&gt;正确答案ABDE</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item><item><title>目前，国内外研究者主要从三个角度来考察神话的基本形态，进而作出科学分类，分别是（     ）</title><link>https://gaojiufeng.cn/?id=7510342</link><description>&lt;p&gt;目前，国内外研究者主要从三个角度来考察神话的基本形态，进而作出科学分类，分别是（     ）&lt;/p&gt;&lt;pre class=&quot;prism-highlight prism-language-actionscript&quot;&gt;A.国家
B.民族
C.年代
D.题材
E.母题
&lt;/pre&gt;正确答案BDE</description><pubDate>Sun, 10 Sep 2023 02:36:18 +0800</pubDate></item></channel></rss><!--30.93 ms , 25 query , -1171kb memory , 0 error-->