Spring里的坑

1. 配置文件配置controller,在Controller中使用注解配置的bean,会出现获取不到bean的情况

步骤一:使用在配置文件 springmvc.xml 中配置的方式配置controller

<bean name="login.action" class="com.orderonline.controller.admin.LoginController"></bean>

步骤二:在controller中获取 Automired 自动注入的bean

public class LoginController implements Controller{

    @Autowired
private UserService userService; @Override
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
// TODO Auto-generated method stub System.out.println(userService);  //这个将会打印 null ModelAndView mav = new ModelAndView();
mav.setViewName("/admin/success.jsp"); return mav;
}
}

总结:要么都使用配置文件的方式配置bean,要么都使用注解的方式。

2. web.xml文件中的<welcome-file>配置springmvc的action

<welcome-file-list>
  <!-- 访问项目的时候,如果不加具体的页面地址,默认访问的页面 -->
  <welcome-file>index.action</welcome-file>
</welcome-file-list>
问题:
<welcome-file> 里面配置一个html页面或者jsp页面都没有问题,但是如果配置一个action就会出现访问不到的情况。 解决方法:
新建一个与action同名的 空文件。例如我这里的 action 是 index.action,Action代码如下:
@Controller
public class IndexController { @Autowired
private IndexService indexService; @RequestMapping("/index.action")
public ModelAndView initPage(){
ModelAndView mav = new ModelAndView();

    // ... ...
    
mav.setViewName("/WEB-INF/index.jsp");
return mav;
} }
 那我就要在webapp下新建一个 index.action 文件,如下图:


3. Spring不引入 commons-logging.jar,报错:java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;

在使用Spring的时候,如果不导入 commons-logging.jar 就会报错;提示导入这个jar包。但是疑惑的是,我的项目中没有使用到这个jar包啊。
那么就只能是一个原因了。既然我们自己没有使用这个jar包的日志功能,那么就一定是Spring使用了这个jar包的日志功能。
所以当我们使用Spring的时候,我们的项目也就依赖commons-logging.jar了。 Spring依赖Commons-loggin.jar的原因:

我们都知道,使用了Spring的项目在添加日志打印功能的时候,只需要很简单的几个配置,就能把第三方的日志打印框架整合进来,例如强大的Log4j。(这里不讲Log4j的导入)。

那么为什么Spring对这些第三方日志打印框架有这么好的整合呢?

原因就是,给这些第三方日志框架提供了日志打印接口。而Spring实现这些日志打印接口的方法就是通过Commons-loggin.jar实现的。

Commons-loggin.jar的目的是为“所有的Java日志实现”提供一个统一的接口,它自身的日志功能平常弱,所以一般不会单独使用它。

在这里可以类比于JDBC的API接口:java提供操作数据库的接口,而操作数据库的驱动和api的实现由各个数据库的厂商来做。开发者只需要调用java的api即可,不用管各个数据库访问的实现。

 

Spring里的坑的更多相关文章

  1. spring cloud feign 坑

    feign是啥? 很多人可能对于feign 不是很熟悉,可以看一下其他网友的实例分享:spring cloud feign简介 如果觉得上面这个比较难的话,还有一个简单入门的:spring cplou ...

  2. spring里的事物设置

    有的人说事物在spring里设置有两种,其实事物设置在spring配置文件中共有五种方式:第一种方式:每个Bean都有一个代理第二种方式:所有Bean共享一个代理基类第三种方式:使用拦截器第四种方式: ...

  3. 记一次spring里bean无法注入的历程

    应用启动的时候失败,看了下异常,是这个---NoUniqueBeanDefinitionException. 大家都知道,这是因为有俩个类型相同的实例,在被注入的时候,spring不知道该用哪个. 但 ...

  4. Spring WebSocket踩坑指南

    Spring WebSocket踩坑指南 本次公司项目中需要在后台与安卓App间建立一个长连接,这里采用了Spring的WebSocket,协议为Stomp. 关于Stomp协议这里就不多介绍了,网上 ...

  5. 在普通Java类里使用spring里注入的service、dao等

    版权声明:本文为博主武伟峰原创文章,转载请注明地址http://blog.csdn.net/tianyaleixiaowu. 在spring管理的web项目里,譬如Struts和spring的项目,配 ...

  6. spring里面的ioc的理解?

    spring里面的ioc就是控制反转,其实现核心是DI(依赖注入),控制反转不向以前java代码里面,通过new关键字来实现创建对象,这样每段代码之间的耦合度就比较高,为了降低每个小模块之间的耦合度, ...

  7. Spring里的Ant Pattern

    Spring里的Ant Pattern用于匹配URL 可以参考官网:https://docs.spring.io/spring/docs/current/javadoc-api/org/springf ...

  8. 关于如何使用Spring里@AliasFor注解进行注解的封装

    不知道大家每次使用Spring boot的时候有没有看过它启动类里 @SpringBootApplication这个注解呢?众所周知,这个注解是一个复合注解,但是注解是不能继承元注解的属性的,也就是说 ...

  9. Spring @Transactional踩坑记

    @Transactional踩坑记 总述 ​ Spring在1.2引入@Transactional注解, 该注解的引入使得我们可以简单地通过在方法或者类上添加@Transactional注解,实现事务 ...

随机推荐

  1. P4542 [ZJOI2011]营救皮卡丘(Floyd+网络流)

    P4542 [ZJOI2011]营救皮卡丘 乍一看似乎没啥题相似的 仔细一看,$N<=150$ 边又是双向边,似乎可以用Floyd搞   先跑一遍Floyd处理出$dis[i][j]$ 注意到走 ...

  2. Windows程序设计--(五)绘图基础

    5.1 GDI的结构 图形设备接口(GDI:Graphics Device Interface)是Windows的子系统,它负责在视讯显示器和打印机上显示图形. 5.2 设备环境 5.2.1 获取设备 ...

  3. 全栈开发系列学习2——django项目搭建

    项目代码:http://yunpan.cn/cHajgT4HvgHqx (提取码:8350) 配置项目: 1. 首先确保你的机器安装了python和pip,这两种安装比较简单,这里就不说了. 2. 在 ...

  4. zabbix3.4.8配置自动发现主机并监控

    一.       自动发现功能简介 Zabbix服务器端通过网络或者主机名等方式进行客户端的扫描发现,从进行加入到监控的主机队列中,适用于批量加入多主机监控的场景. 二.       自动发现功能实施 ...

  5. 解决java compiler level does not match the version of the installed java project facet问题

    在编写项目的时候是,后来有改java写法,将工程改成了jdk1.7,后来工程就有了一个红叉,但是代码,文件里没有任何问题,也可以运行,不知道是什么原因,后来在problems里才知道是:java co ...

  6. LOJ6435 PKUSC2018 星际穿越

    这个题吧当时在考场只得了45分 然后70分的性质都分析到了 不知道为啥就是写萎蛋了 哎 当时还是too young too simple 看了一下julao们的博客这个题有两种做法 一个是比较费脑子的 ...

  7. 如何开启spring框架以注解形式的配置

    步骤 导包(新版本需要导入spring-aop-4.3.17.RELEASE.jar) 为配置文件applicationContext.xml引入新的命名空间(约束) 开启使用注解 <?xml ...

  8. yield关键字详解与三种用法

    本篇文章比较硬核, 适合有一定Python基础的读者阅读, 如果您对Python还不甚了解可以先关注我哦, 我会持续更新Python技术文章 yield详解 yield与return相同每次调用都会返 ...

  9. boost exception

    boost exception provides a new exception type, that lets you add data to an exception after it has b ...

  10. FMXUI TEXTVIEW代码设置IMAGEINDEX

    FMXUI作为一个开源的控件,真是DELPHIER的福音,向作者致敬.​TEXTVIEW非常好用,在属性面板中有ImageIndex属性,可以方便设置图标,在实际应用中图标状态需要改变,但在代码设置时 ...