开发者社区> 问答> 正文

spring的配置中有些配置没有id或者name属性,spring是如何注入的?:配置报错 

spring的配置中有些配置没有id或者name属性,spring是如何注入的? 如下配置:这些配置都只有class属性,没有id属性,不是说DI都是根据id或者name来注入相应的对象的吗?而如下配置完全没有id属性,我想知道spring如何完成注入的?

	<bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping" p:order="1">
		<property name="interceptors" ref="localeChangeInterceptor" />
	</bean>
	<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping" p:order="2">
		<property name="interceptors" ref="localeChangeInterceptor" />
	</bean>
	<!--
		- This bean resolves specific types of exceptions to corresponding logical - view names for error views. The default
		behaviour of DispatcherServlet - is to propagate all exceptions to the servlet container: this will happen - here with
		all other types of exceptions.
	-->
	<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
		<!--property name="defaultErrorView" value="uncaughtExceptionView"/-->
		<property name="exceptionMappings">
			<props>
				<prop key="org.springframework.dao.DataAccessException">dataAccessFailureView</prop>
				<prop key="org.springframework.transaction.TransactionException">dataAccessFailureView</prop>
			</props>
		</property>
	</bean>

展开
收起
kun坤 2020-06-04 10:12:14 717 0
1 条回答
写回答
取消 提交回答
  • 默认spring是通过type也就是类的全名进行注入的,只要找到类相同就可以注入,不需要按照名字,所以名字是多余的。也可以改为通过名字注入,需要在注解注入的时候引用名称属性。 在EJB3不同,EJB3默认是按照名称进行注入的@resource (name="xxxx")######上面是正解,不过我记得好像spring是默认按名称,可更改为按类注入的吧,后台用一个反射机制去查找的。######最初 Spring 的设计应该byName ,但后来 byType 方式可能更流行一些,特别seam2, CDI, Guice 出来之后。 使用 Spring Annoation的话,默认都是bytype的。。。也可以使用Qulifiliar 限定名称,这主要针对同一接口不同实现,如果只一种实现,为什么还要使用名称呢?    ######

    引用来自“郑彬”的答案

    默认spring是通过type也就是类的全名进行注入的,只要找到类相同就可以注入,不需要按照名字,所以名字是多余的。也可以改为通过名字注入,需要在注解注入的时候引用名称属性。 在EJB3不同,EJB3默认是按照名称进行注入的@resource (name="xxxx")
    嗯,明白了,其实就是说id只有在被引用的时候会用到,如果没有引用的话有没有id都无所谓。 spring在启动的时候会自动把各个bean实例化,放进context,而系统的urlHanderMap等类会被系统识别作为处理器。 是不是这个意思?  
    2020-06-04 13:31:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
云栖社区特邀专家徐雷Java Spring Boot开发实战系列课程(第20讲):经典面试题与阿里等名企内部招聘求职面试技巧 立即下载
微服务架构模式与原理Spring Cloud开发实战 立即下载
阿里特邀专家徐雷Java Spring Boot开发实战系列课程(第18讲):制作Java Docker镜像与推送到DockerHub和阿里云Docker仓库 立即下载

相关实验场景

更多