Spring - 父容器与子容器

一、Spring容器(父容器)

  1、Mapper代理对象
  2、Service对象

二、Springmvc(前端控制器)(子容器)


       Controller对象

1.标准的配置是这样的:Controller只在SpringMVC的配置文件扫描。Service等只在Spring容器的配置文件配置扫描。
        2.Spring中也可以扫描Controller,但是使用时还是使用的SpringMVC自己的(自己没有配置,那么不能用),造成对象冗余,而且使用时事务控制可能有问题。
        3.SpringMVC中也可以配置扫描Service等,也造成冗余,而且使用时事务控制可能有问题。

通过Value注入时,在Controller中不能使用注入属性,因为Controller是子容器控制的。

          除非在spring-mvc.xml中也加入配置:
          <!-- 加载文件上传路径配置文件 解决@controller 中无法注入配置文件中的属性 -->
           <context:property-placeholder location="classpath*:file.properties"/>

三、总结

  1、避免父子容器拥有共同的实例,是没有必要的使用方式。

    常见的资源初始化、预热多次;如果父子容器都有实例,而通过SpringUtil 的方式获取bean,就要看SpringUtil 所在的容器,来获取对应的bean,也容易混乱

  2、事务一般不要放在子容器中,子容器应该仅仅存在 web相关的bean;这也间接说明@Transactional 不应该修饰controller

  3、如果希望对子容器的实例拥有事务能力,需要确保<aop:aspectj-autoproxy/> 以及Aspect 配置在子容器中

原文地址:https://www.cnblogs.com/caoshouling/p/8644514.html

时间: 2024-11-03 21:06:13

Spring - 父容器与子容器的相关文章

父容器内子容器浮动的高度自适应问题 _ CSS_HTML

‍1.当‍父容器不设置固定高度.宽度时,且子元素设置了浮动.让父容器随子容器的撑开而撑开,缩小而缩小,自动适应高宽度. 这种情况可在父窗口加上 overflow:auto;zoom:1;这两个样式属性,overflow:auto;是让父容器来自适应内部容器的高度,zoom:1;是为了兼容IE6而使用的CSS HACK.zoom:1;通不过W3C的验证,这也是遗憾的一点,幸好IE支持<!--[if IE]>这种写法,可以专门针对IE来写单独的样式,所以可以把这个属性写在页面内的<!--[i

Spring父容器与子容器

在使用spring+springMVC的web工程中,我们一般会在web.xml中做如下配置: <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application.xml</param-value> </context-param> <!-- spring context listener -->

09禁用跨站脚本攻击拦截 父容器调用子容器和子容器调用父容器

禁用跨站脚本攻击拦截 1.在配置文件中<httpRuntime >节点中设置,requestValidationModel="2.0". 2.在页面page中,设置属性ValidateRequest="false"; function submitFrm() { //表单提交 var postData = $("#form1").serializeArray(); $.post("EditNews.aspx", p

【CSS】div父容器根据子容器大小自适应

Div即父容器不根据内容自动调节高度,我们看下面的代码: 1 <div id="main"> 2 3 <div id="content"></div> 4 5 </div> 当Content内容多时,即使main设置了高度100%或auto.在不同浏览器下还是不能完好的自动伸展.内容的高度比较高了,但容器main的高度还是不能撑开. 我们可以通过三种方法来解决这个问题. 一,增加一个清除浮动,让父容器知道高度.请注意,

IE9父容器overflow:auto时,子容器状态更改导致滚动条下出现额外空间的问题探讨

IE的每次跟新都会有一些奇葩的bug,我们默默承受了. 这个问题在项目中出现困扰了我近一个星期,这里记录一下.看下面实例 <style> .panel{ width: 200px; overflow: auto; background-color: #f00; } .inner{ width: 250px; background-color: #ff0; } </style> <div class="panel"> <div class=&qu

HTML中实现子容器垂直居中的几种方式

年前前端圈蛮热闹的,大家撕的挺欢的,阿当想说的并不是固步自封,抵制学习新东西,而是想说要夯实基础,然后对框架有甄别能力的基础上再去有选择的学习.归根结底还是要掌握好根本,也就是道,其余的工具都不过是术,得道了,术这些东西自然手到擒来.好了,胡扯打住.阿当说区别真前端和伪前端其中一点就是能说出几种HTML元素的垂直居中方式. 那我在这里总结一下我get的几种方式. 代码结构如下,父容器,子容器宽高不确定. <div class="parent"> <div class=

Spring笔记——5.深入理解容器中的Bean

Spring框架的绝大部分工作是对bean的管理,包括管理bean的生命周期.使用bean继承功能. 抽象bean与子bean 为了防止太多十分类似的bean出现在xml中,我们使用抽象bean把共同的信息提取出来,使用abstract属性标记为true.它不能被实例化,意义只是被继承,是个模板.子bean可以继承抽象bean的实现类,构造器参数,属性配置信息.子bean可增加新的信息也可覆盖父bean.子bean通过parent属性指定父bean的名字.与java继承相比,bean继承的bea

Spring 和SpringMVC 的父子容器关系

Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而实际使用时,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但是在实际项目中,同时配置Spring和SpringMVC时会出现一些奇怪的异常,比如Bean被多次加载,多次实例化,或者依赖注入时,Bean不能被自动注入,但是明明你已经将该Bean注册了的.找原因还是要看问题的根源,我们从容器说起. 在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,

Spring和SpringMVC父子的容器之道---[上篇]

昨天,给数据组写接口,不小心掉进坑里挣扎了半天,最后发现是spring和springmvc它们虽是父子但并不和谐,于是在此一记. Spring和SpringMVC作为Bean管理容器和MVC层的默认框架,已被众多WEB应用采用,而在实际开发中,由于有了强大的注解功能,很多基于XML的配置方式已经被替代,但在实际项目中,我们经常会同时配置Spring和SpringMVC的配置文件,分层来管理它们,但是有时候就会出现那么一些奇怪的异常,一旦进坑,让你无法自拔,就在昨天给数据组写接口时,我进坑了,就在