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"(2)
class="beanClass"(3)
parent="parentBean"(4)
abstract="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异步方法调用

最新文章

  1. 【Android】Ignoring InnerClasses attribute for an anonymous inner class
  2. Introduction - SNMP Tutorial
  3. jsp内置对象作业2-留言簿
  4. SQLMAP源码分析-目录结构
  5. 【解决方案】VS2013外部工具中添加ildasm.exe
  6. 如何清除sql server日志
  7. 【六】PHP正则表达式方法
  8. 转:php中实现精确设置session过期时间的方法
  9. Shell中的${},##和%%的使用
  10. Memory Analyzer Blog
  11. webstrom30天免费试用期过后如何破解继续使用
  12. matlab函数:c2d离散化函数(待完善)
  13. a*b(mod m)的实现过程
  14. React Fiber源码分析 第一篇
  15. NTT算法小结
  16. stm32 HAL库编程驱动控制文件&lt;stm32f1xx_hal_conf.h&gt;的使能方法
  17. TIJ -- 吐司BlockingQueue
  18. datagridview 行高列宽的自动设置
  19. 条件独立(conditional independence) 结合贝叶斯网络(Bayesian network) 概率有向图 (PRML8.2总结)
  20. JavaScript callee caller

热门文章

  1. spring 注解AOP
  2. 行为驱动:Cucumber + Java - 实现数据的参数化
  3. NXP官方ddr_stress_tester工具使用
  4. GAN简介
  5. JavaScript的闭包特性如何给循环中的对象添加事件(一)
  6. Thread 另类用法,如何执行一段可能死锁/卡死/死循环的代码
  7. CSS3特效之转化(transform)和过渡(transition)
  8. echarts折线图上下颜色渐变样式
  9. SAP S4HANA 使用BP创建供应商报错 - You cannot create a vendor with grouping G001 - 对策
  10. 【原创】Airflow 简介&amp;如何部署一个健壮的 apache-airflow 调度系统