zoukankan      html  css  js  c++  java
  • java 随笔

    Spring的scope="prototype"属性 - 多例

      spring 默认scope 是单例模式(singleton),这样只会创建一个Action对象,每次访问都是同一个Action对象,数据不安全。
      struts2 是要求每次次访问都对应不同的Action,scope="prototype"(多例) 可以保证 当有请求的时候 都创建一个Action对象。

    request.getParameter() 和request.getAttribute() 区别:

      getParameter 是用来接受用post个get方法传递过来的参数的。
      getAttribute 必须先setAttribute。

    Bean

      参考:https://www.cnblogs.com/xiaoxi/p/5850095.html

    <bean
        id="beanId"(1)
        name="beanName"(2class="beanClass"(3)
        parent="parentBean"(4abstract="true | false"(5)
        singleton="true | false"(6)
        lazy-init="true | false | default"(7)
        autowire="no | byName | byType | constructor | autodetect | default"(8)
        dependency-check = "none | objects | simple | all | default"(9)
        depends-on="dependsOnBean"(10)
        init-method="method"(11)
        destroy-method="method"(12)
        factory-method="method"(13)
        factory-bean="bean">(14</bean>

      参考:https://www.cnblogs.com/zffenger/p/5808031.html

    <bean    class="bean的完全限定名"
             name/id="bean在容器内的唯一名称"
                scope="bean的生命周期"
                lazy-init="是否为延迟加载"
                init-method="bean的setter被调用之后调用该方法进行初始化"
                destroy-method="容器在销毁该Bean后的调用的方法"
                abstract="是否为抽象Bean,spring对于抽象bean不产生实例,主要用于继承"
                parent="父Bean的名称,会继承父Bean的属性,与Java的Class无任何关系"
                factory-method="工厂方法的名字"
                factory-bean="工厂Bean的名字"
                depends-on ="依赖Bean的名字,保证初始化顺序。” > 
    
                <!-- Constructor-arg给属性赋值写法一 -->
                <constructor-arg type="int" value="10"/>
                <!-- Constructor-arg给属性赋值写法二 -->
                <constructor-arg name="age" value="10"/>
                <!-- Constructor-arg给属性赋值写法三 -->
                <constructor-arg index="0" value="10"/>
    
                <!-- Properties给属性赋值写法一 -->
                <property name="bean1">
                     <ref bean="另外一个bean的id"/>
                </property>
                <!-- Properties给属性赋值写法二 -->
                <property name="bean1" ref="另外一个bean的id"/>
                <!-- Properties给属性赋值写法三 -->
                <property name="age" value="10"/>
    </bean>

    spring注解

     借鉴:https://www.cnblogs.com/xiaoxi/p/5935009.html。 

      1、@Autowired

        @Autowired顾名思义,就是自动装配,其作用是为了消除代码Java代码里面的getter/setter与bean属性中的property。当然,getter看个人需求,如果私有属性需要对外提供的话,应当予以保留。

        @Autowired默认按类型匹配的方式,在容器查找匹配的Bean,当有且仅有一个匹配的Bean时,Spring将其注入@Autowired标注的变量中。

      2、Qualifier(指定注入Bean的名称)

      3、Resource 默认通过name属性去匹配bean

    @Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
    @Scope注解 作用域
    @Lazy(true) 表示延迟初始化
    @Service用于标注业务层组件
    @Controller用于标注控制层组件(如struts中的action)
    @Repository用于标注数据访问组件,即DAO组件
    @Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注
    @Scope用于指定scope作用域的(用在类上)
    @PostConstruct用于指定初始化方法(用在方法上)
    @PreDestory用于指定销毁方法(用在方法上)
    @DependsOn:定义Bean初始化及销毁时的顺序
    @Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
    @Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
    @Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
    @Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配
    @PostConstruct 初始化注解
    @PreDestroy 摧毁注解 默认 单例  启动就加载
    @Async异步方法调用

  • 相关阅读:
    apache安装 mod_evasive
    sshd调优
    MySQL服务器状态变量
    MySQL查询缓存
    MySQL并发调优和IO调优
    MySQL线程独享[转]
    mysql线程缓存和表缓存
    MySQL点滴
    MySQL优化常用
    apache的prefork的详解
  • 原文地址:https://www.cnblogs.com/day1day1up/p/10825297.html
Copyright © 2011-2022 走看看