简述springmvc配置如何回答比较好

面试问Spring mvc该如何回答 - Java Web开发当前位置:& &&&面试问Spring mvc该如何回答面试问Spring mvc该如何回答&&网友分享于:&&浏览:122次面试问Spring mvc该怎么回答?不是就mvc分开来回答么?那个面试官说&跟页面显示层、逻辑控制层、数据层不一样,虽然有联系。他说Spring&mvc只是页面的,都把我弄糊涂了,那该怎么回答啊,汗。。。。。
------解决方案--------------------你是不是理解错面试官的意思了&&或者我理解错你的意思了
Springmvc&是框架,和struts差不多&我觉得比struts&好用&------解决方案--------------------1.回答springmvc是什么
2.讲解springmvc的工作原理
3.讲解springmvc和struts的区别&
答到这三个方面&基本ok啦
12345678910
12345678910
12345678910 上一篇:下一篇:文章评论相关解决方案 12345678910 Copyright & &&版权所有<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&二次元同好交流新大陆
扫码下载App
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
“我来~我见~我征服!”
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
3.3.3 Maven解决问题之道:项目生命周期管理 一个web项目,离不开编译compile、打包package、运行run、发布deploy等;而这Maven都提供插件管理。 最重要的是,基于Spring的MVC,还提供测试test。这个测试框架的使用也是非常的简单。这么看来,测试test也是生命周期中的一部分 结合生命周期管理,整个目录如下:
3.3.4 Maven的参考资料 在Eclipse中配置好Maven: 已知类名,如何找到jar包:
已知jar包,如何设置maven 依赖: mvn --help &&& 查看mvn帮助
mvn war:help 查看子插件的帮助,例如mvn:tomcat:help
mvn dependency:list 查看jar包依赖层次关系
mvn dependency:tree 查看jar包依赖列表
3.3.5 Maven+Spring+MVC的几个常见问题 以下是通过向导搭建框架中,几个常见问题和解决方法: 如果遇到Servlet-api冲突,可用的解决方法是:加入一个scope。表示在编译时使用项目库中的,但是运行时使用web服务器的。http://blog.csdn.net/volkia/article/details/5541414 &dependency& &groupId&javax.servlet&/groupId& &artifactId&servlet-api&/artifactId& &version&2.5&/version& &scope&provided&/scope&&/dependency&
针对json-lib:缺省的依赖配置存在问题,需要添加jdk15。主要是因为jar包的文件名缺省是artifactId+version+classifier.jar。看看最后下载的jar文件名是否一致。
&dependency&
&groupId&net.sf.json-lib&/groupId&
&artifactId&json-lib&/artifactId&
&version&2.1&/version&
&classifier&jdk15&/classifier&
&/dependency&
针对jstl.jar:groupId要根据“The artifact jstl:jstl:jar:1.1.2 has been relocated to javax.servlet:jstl:jar:1.1.2”修改,将原先的groupId:jstl修改为javax.servlet,从而去掉警告。 &dependency& &groupId&javax.servlet&/groupId& &artifactId&jstl&/artifactId& &version&1.1.2&/version& &type&jar&/type& &scope&compile&/scope&&/dependency&
Spring MVC的生命线 所有的Java web网站,其入口是web.xml,web服务器会访问之。在这里我们会配置欢迎页,拦截器、过滤器,以及Servlet。 这些,都并不是Spring特有的,而是Web服务器特有规定的。但是Spring,却可以先接手这些(除了欢迎页),而进入自己的流程。 由此入手,我们将分析,Spring如何嵌入,又如何起作用。 这里我们分析的例子,依然是由maven生成的上述项目框架;针对独立运行的网站,该框架的表现足够称得上“麻雀虽小五脏俱全”! 3.4.1 Web.xml嵌入Spring代理 如何嵌入Spring呢?Spring主要做的两件事就是:管理全局的数据(例如:数据库),管理MVC的servlet。每一个部分对应一个配置文件。
全局数据管理 &context-param& &param-name&contextConfigLocation&/param-name& &param-value&/WEB-INF/spring/root-context.xml&/param-value&&/context-param&
这个会在Spring环境初始化后调用,现在主要是用来准备好数据库等信息。
基于MVC的servlet的管理 &servlet& &servlet-name&appServlet&/servlet-name& &servlet-class&org.springframework.web.servlet.DispatcherServlet&/servlet-class& &init-param&
&param-name&contextConfigLocation&/param-name&
&param-value&/WEB-INF/spring/app/servlet-context.xml&/param-value& &/init-param& &load-on-startup&1&/load-on-startup&&/servlet&&servlet-mapping& &servlet-name&appServlet&/servlet-name& &url-pattern&/&/url-pattern&&/servlet-mapping&
这里,就是拦截所有的url,统一交给DispatcherServlet处理;而其内部,则根据servlet-context.xml的配置,转入到相应的Controller层和模板视图层。 以下是整体结构图,其分支又将各起作用。
3.4.2 全局数据库的管理 如下图,这就是整个数据库的连环包含过程。
从使用的角度来说,我们只用设置好数据源的属性“db.properties”即可。如果要深入理解,可以研究下“db.xml”中的事物和实体管理对象,何时产生,何时发挥作用。
3.4.3 MVC Servlet的管理 如下图,这就是整个Servlet的MVC处理过程。所谓MVC处理过程,当然涉及到Controller和View的处理;此外,还可能涉及到静态资源的映射处理。 这三部分,可能并不好划分哪个那个应该划分到某个文件;也是如此,我们完全可以只用一个文件就实现这所有功能。
饭前甜点:xml命名空间xmlns xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx=http://www.springframework.org/schema/tx
xml中的每个元素element都隶属于某个命名空间;使用该元素element的时候,必须指明命名空间;如果不指定,就表示xmlns所指向的缺省命名空间。 如果是通过多个文件分开,然后import,需要看看每个文件配置的缺省命名空间。 最重要的是,我们如果想查看每个元素最详细的属性说明,就可以通过这些命名空间,找到对应的DTD文件,开始研究了。
如何指向MVC中的V(模板视图引擎) Jsp: &bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"& &property name="prefix" value="/WEB-INF/views/"/& &property name="suffix" value=".jsp"/&&/bean&
Freemarker: &bean id="viewResolver" class="org.springframework.web.servlet.view.freemarker.FreeMarkerViewResolver"& &property name="suffix" value=".ftl"/&&/bean&
Velocity: &bean id="viewResolver" class="org.springframework.web.servlet.view.velocity.VelocityViewResolver"& &property name="suffix" value=".vm"/&&/bean&
当然,同时只能指定一个。
如何指向MVC中的C &!--指定代码中Controller层的位置--&&context:component-scan base-package="com.ninfor.phw" /&&!—自动扫描Controller--&&mvc:annotation-driven /&
注意:千万不要设置两处 3.6.5 参考。因为每次碰到一处这句设置,将会扫描一次Controller,并且建立一遍URL和Contrller的对应映射关系;也会在mvn tomcat:run中看到url映射出现两次。既影响速度,同时也可能导致内存浪费。
如何处理静态资源文件 &mvc:resources mapping="/js/**" location="/resources/js/" /&&mvc:resources mapping="/css/**" location="/resources/css/" /&&mvc:resources mapping="/images/**" location="/resources/images/" /&
这里就是物理和逻辑静态文件路径处理。mapping是逻辑静态文件,location是物理静态文件。 如果URL不经过controller,而是直接指向一个jsp或者html视图文件,可以使用: &mvc:view-controller path="/" view-name="index "/&
此时,没有后缀名,会根据中的配置找对应文件。如果有后缀或路径,则直接指向该文件。
其它 事物声明 &tx:annotation-driven /&
参数/路径校验 &beans:bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" /&
这些配置生命线弄完后,就可以根据需求写相应的controller;然后开始实现相应的功能了。 3.5
Controller URL 和 Controller是绑定在一起的。URL传递到Controller中时,经常会遇到:
路径的解析
输入参数的解析
http headers的解析
输出值的确定
常用请求的确定
很好,这些东西,我们只管拿来使用。
3.5.1 如何确定一个Controller 类 使用@Controller注解即可。 @Controller public class CorpController { }
可见,加了@Controller注解的类,就是Controller。去除注解,这个类是个很普通的类。反过来说,我们完成类,然后加个注解@Controller,就变成了Controller。
3.5.2 如何使用外部变量 @Controller public class CorpController {&@Autowired
private CorpinfoDao corpinfoD
@Autowired
private QueueinfoService queueS }
部变量,我们只管使用@Autowired注解,通过外部注入;而不必考虑其创建过程的千辛万苦层层叠叠。这也是bean的功劳!
3.5.3 如何确定url 一个类如果处理多个url响应,而且该url有个共同前缀,我们可以将前缀放在类上,而不同的子分支放在响应点函数上。 @Controller @RequestMapping("/corp") public class CorpController {
@RequestMapping(method = RequestMethod.POST, value = "/refresh")
public String do_refresh(@RequestParam(value = "bid") long corpId)
return ……;
@RequestMapping(method = RequestMethod.GET, value = "")
public ModelAndView showAppoint(@RequestParam(value = "id", required = true) long id)
return ……;
则 http://localhost:8080/mysite/corp 对应 showAppoint; 而http://localhost:8080/mysite/corp/refresh则对应do_refresh。 如果类中没有指定@RequestMapping注解,则方法体中的的注解必须是绝对路径。
3.5.4 如何自动提取url中的输入参数 参数可能来源于GET或者POST,都无所谓。 原始的参数值,都是String。但是使用时,我们可以不用理会参数的类型,自动当做我们理想的类型来使用;中间的转换过程,Spring帮我们完成。 @RequestMapping(method = RequestMethod.GET, value = "") public ModelAndView showAppoint(@RequestParam(value = "id", required = true) long id) {
return ……; }
参数来源类型:@RequestMapping(method = RequestMethod.GET)。其中,取值有RequestMethod.GET、RequestMethod.POST和RequestMethod.ALL。
参数名称:由@RequestParam(value = "id", required = true)确定;表示url中使用的参数是id;而此处id和函数实参id如果一致,则可以忽略value。
参数类型:long id,自动会将参数转换为long类型。
3.5.5 如何自动提取url中的输入路径片段 很多时候,我们会通过url路径来决定当前上下文内容。这时,url路径中的分类和分级都有特定意义。 @RequestMapping(method = RequestMethod.GET, value = "/{id}")
public ModelAndView showAppoint(@PathVariable("id") long id,HttpServletRequest request) {
这里表示,最终的url是http://localhost:8080/mysite/corp/xx,而xx的值就是id。 很奇怪,如果Class的@RequestMapping("/corp"),并且方法中的value = "{id}",对应的url还是http://localhost:8080/mysite/corp/xx,而不是http://localhost:8080/mysite/corpxx。 此外,如果value = ".{id}",或者value = "_{id}",都不能访问! 难道是bug?
3.5.6 如何提取url中的输入的http协议中的header @RequestMapping(method = RequestMethod.GET, value = "") ModelAndView showAppoint(@RequestParam(value = "id", required = true) long id,HttpServletRequest request) {
browser = request.getHeader("User-Agent");
if(browser.indexOf("Mobile")&0 || browser.indexOf("UCWEB")&0)
实际上,通过request来获取header。这个是Servlet的功能!我们还没有办法类似@RequestParam的,有一个@RequestHeader的注解。实现起来简单,只不过spring目前版本还没有提供而已!
3.5.7 如何自动提取url中的特例 //http://localhost:8080/mysite/corp?id=1到此 @RequestMapping(params = "id=1", value = "") public ModelAndView showAppoint_1(@RequestParam(value = "id", required = true) long id) {
return ……; }
//http://localhost:8080/mysite/corp?id=x到此 @RequestMapping(value = "") public ModelAndView showAppoint( @RequestParam(value = "id", required = true) long id) {
return ……; }
//http://localhost:8080/mysite/corp?id=x,并且可能是手机来访问的到此 //好像不起作用 @RequestMapping(headers = "User-Agent=*Mobile*", value = "")
public ModelAndView showAppoint_mobile(@RequestParam(value = "id", required = true) long id) {
return ……; }
可以对参数和header进行特例处理;但是不能对path进行特例处理。估计Spring 3.0.7中都没有考虑到这种情况吧。 另外,params = "id=1"中的id,对应的是url中的参数;而不是方法体中的参数id。如果是方法体中的参数,则很容易就对path的片段进行提取。不过spring也还是不支持。 另外,对于header的语法,帮助中说类似于Ant path格式,为什么不是正则表达式格式呢?这样,特别局限了该功能。
3.5.8 如何确定输出 输出包括文本,或者跳转到某个页面。前者通过带@ResponseBody注解的String返回值标记;后者有好几种方法。 //-通过ModelAndView指定视图- @RequestMapping(value = "/{id}") public ModelAndView showAppoint1(@PathVariable("id") long id) {
ModelAndView mav = new ModelAndView();
mav.setViewName("corp");
//-直接返回String,若未用@ResponseBody来标注,表示视图- @RequestMapping(value = "/{id}") public String showAppoint2(@PathVariable("id") long id) {
return "corp"; }
//-直接返回String,通过@ResponseBody来标记- @RequestMapping(value = "/refresh") @ResponseBody String do_refresh(@RequestParam(value = "bid") long corpId) {
String rtn = "[rtn: ‘this is a json string’]";
3.5.9 如何使用常用请求工具 以前的servlet中用到的request/response,以及request/response中经常用到的session和cookie,out等,也都可以直接使用;而不必再通过request/response来直接或间接获得。我们唯一需要做的是,就是把要用到工具,作为参数定义在方法体的最后。我们只管使用即可,而不必管怎么来,怎么关闭。
Request @RequestMapping(method = RequestMethod.GET, value = "") public ModelAndView showAppoint(@RequestParam(value = "id") long id, HttpServletRequest request) {}
Out @RequestMapping void processRequest(HttpSession session, HttpServletResponse response,ServletOutputStream out)throws ServletException,IOException {
response.setContentType("image/jpeg");
ImageIO.write(image, "JPEG", out); }
3.5.10 参考
在MVC中,从分层角度来说,有几个对象,例如:Controller、Dao、Service。有生命周期角度来说,有全局的对象、一次性的对象。 所有这些对象,在代码实现层次上表现的都是类,只不过是加了几个注解而已。
3.6.1 bean对象 简单点说,只要加上一个@Component,类就可以成为bean对象,可以被方便的创建注入。这个注解有还有三个别名,分别叫做:
@Repository - 数据库操作的,DAO层
- 业务逻辑层
@Controller - Controller层
目前这四个注解的功能完全一致。只是Spring建议分类,方便后期针对特定功能提供特殊服务。 加了注释的类,在上述配置文件中,才会被扫描到;也因此,才有可能通过@Autowired 注入到别的对象中作为属性。 &!--指定代码中Controller层的位置--&&context:component-scan base-package="com.ninfor.phw" /&&!—自动扫描Controller--&&mvc:annotation-driven /&
3.6.2 生命周期 在类上加@Component注解,使得类成为bean,Spring管理其创建和销毁。创建和销毁的之后和之前,其实还可以留一些接口,供开发者来做其它的事。这时的接口就是,在方法加上@PostConstruct和@PreDestroy。 要想使用该注解,需要加入JSR-250的jar包,在Maven的配置文件pom.xml中加入: &dependency& &groupId&javax.annotation&/groupId& &artifactId&jsr250-api&/artifactId& &version&1.0&/version&&/dependency&
3.6.3 全局对象 有时我们需要一些全局对象,初始化时就创建,一直就存在。很简单。只用在类上加注解@Scope("singleton")即可。其实缺省的没有@Scope的就是单例的。 至于是否用@Scope("singleton"),则看这个bean,是否会被共享,存在同时读写的可能。如果存在,敬请使用@Scope("prototype")。
3.6.4 定时调度对象 不用写代码,就知道我们需要的定时调度对象是这样的:要做的任务单独写,怎么调度随便配。在WEB中也是如此,我们的任务也就是这两点:任务和调度。 3.6.4.1 任务 任务就是:
一个普通的类,有个方法在做事。 或者继承于QuartzJobBean的一个类;内部会调用该类的具体方法。
所以,最好的方式还是前面一种。 3.6.4.2 调度 调度分为4个步骤,就是声明四个bean。指定做事的对象:类&bean id="runMeTask" class="mon.RunMeTask" /& 指定任务:类和该类真正做事的方法&bean id="runMeJob"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"& &property name="targetObject" ref="runMeTask" /& &property name="targetMethod" value="printMe" /&&/bean& 指定调度运行规则 通过开始和频率方式指定调度规则:&bean id="simpleTrigger"class="org.springframework.scheduling.quartz.SimpleTriggerBean"& &property name="jobDetail" ref="runMeJob" /& &property name="repeatInterval" value="5000" /& &property name="startDelay" value="1000" /&&/bean&
或者,通过cron方式指定更复杂的调度规划:&bean id="cronTrigger" class="org.springframework.scheduling.quartz.CronTriggerBean"& &property name="jobDetail" ref="runMeJob" /& &property name="cronExpression" value="0/5 * * * * ?" /&&/bean& 这里,调度规则都通过jobDetail指向任务。
指定触发器&bean class="org.springframework.scheduling.quartz.SchedulerFactoryBean"& &property name="triggers"&
&ref bean="simpleTrigger" /&
&!--ref bean="cronTrigger" /--&
&/list& &/property&&/bean&simpleTrigger和cronTrigger可以二选一或者并存。
3.6.4.3 其它 要在web.xml中自动运行,需要将此调度xml文件加入Web.xml中:&context-param& &param-name&contextConfigLocation&/param-name& &param-value&/WEB-INF/spring/root.xml
/WEB-INF/spring/schedulingContext-quartz.xml&/param-value&&/context-param& Spring要想支持Quartz,需要在pom.xml中添加依赖: &dependency&
&groupId&quartz&/groupId&
&artifactId&quartz&/artifactId&
&version&1.5.2&/version& &/dependency& 3.6.5
阅读(3512)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'最简单的Java web mvc spring jpa 整体介绍(三)',
blogAbstract:'3. Spring MVC的解决之道 在Servlet/JSP时代,用原始的方法也可以制作网站。但是存在很多固定重复繁琐的地方;也有很多优秀开拓的地方。Spring来了,继承优秀的,改进繁琐的,就是他的任务。让网站的开发,就像想象中的那么简单,不过是一套填空的试卷考题,就是他的目标。而Spring又是如何实现这一目标的呢? 3.1
Spring的核心 Spring的核心,开门见山说的都是Bean和AOP。但依我的见解是,它的核心是:在做某一件事的长长的流程当中,尽可能的将固定的不变的节点抽离出来交由Spring系统管理,而将个性的可变的少许部分交给使用者去改写。
所谓的Bean管理,只是将对象的生命',
blogTag:'spring,mvc,maven,jpa',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:1,
publishTime:3,
permalink:'blog/static/',
commentCount:1,
mainCommentCount:1,
recommendCount:1,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'
“我来~我见~我征服!” ',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}18:50 提问
spring mvc 报错,求解答,各位好心人必有好报。
六月 07, :04 下午 org.apache.catalina.core.StandardContext listenerStart
严重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'testServiceImpl': Injection of autowired nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.test.entity.Test com.test.service.impl.TestServiceImpl. nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.test.entity.Test] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:288)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1120)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5528)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.test.entity.Test com.test.service.impl.TestServiceImpl. nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.test.entity.Test] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:514)
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:87)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
... 22 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No matching bean of type [com.test.entity.Test] found for dependency: expected at least 1 bean which qualifies as autowire candidate for this dependency. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:949)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:818)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:730)
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486)
... 24 more
按赞数排序
如果你是为了加载spring mvc的配置文件而在web.xml中配置了listener,那么请注意如下:
使用的web容器支持servlet 2.3 或者更高版本的,你可以在web.xml 配置org.springframework.web.context.ContextLoaderListener
使用的web容器支持servlet2.2 或者较低版本的或者支持2.3,但是在初始化servlet之前并没有初始化listener,你可以在web.xml中配置contextorg.springframework.web.context.ContextLoaderServlet1
希望对你有用
补充一下,刚刚的配置文件忘记添加到代码了。
如果你是为了加载spring mvc的配置文件而在web.xml中配置了listener,那么请注意如下:
使用的web容器支持servlet 2.3 或者更高版本的,你可以在web.xml 配置
&listener&
&listener-class&org.springframework.
web.context.ContextLoaderListener&/listener-class&
&/listener&
使用的web容器支持servlet2.2 或者较低版本的或者支持2.3,但是在初始化servlet之前并没有初始化listener,你可以在web.xml中配置
&servlet-name&context&/servlet-name&
&servlet-class&org.springframework.
web.context.ContextLoaderServlet&/servlet-class&
&load-on-startup&1&/load-on-startup&
&/servlet&
希望对你有用
Could not autowire field: private com.test.entity.Test com.test.service.impl.TestServiceImpl. nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException:
注入域,这个类中bean没有,配置的问题吧
53关注|812收录
859关注|686收录
1980关注|145收录
其他相似问题
相关参考资料

我要回帖

更多关于 springmvc配置 的文章

 

随机推荐