spring项目启动 卡在项目初始化

问题日志

02-23 14:49:12 INFO o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker: Bean 'org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration' of type [org.springframework.transaction.annotation.ProxyTransactionManagementConfiguration$$EnhancerBySpringCGLIB$$5769b37f] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
02-23 14:49:13 INFO o.s.b.w.e.tomcat.TomcatWebServer: Tomcat initialized with port(s): 8081 (http)
02-23 14:49:13 INFO o.s.web.context.ContextLoader: Root WebApplicationContext: initialization completed in 8346 ms

问题分析

  1. 由于没有明显的报错日志,首先在复制 ‘Root WebApplicationContext: initialization completed in 8346 ms’ 搜索问题
    发现一些 在linux环境的报错问题解决方案 如 有心故我在 的解决方案,是关于/dev/random 的问题。讲的很好,但是将项目在liunx环境运行没有问题 只在windows本机下有问题。

  2. 项目是spring项目,使用druid做数据库连接池,根据经验数据库连接不上会卡住。修改为错误的链接,项目果然是一样的日志输出。换其他类型的数据库可以正常启动,问题锁定是mybatis链接超时。

  3. 检查关于jdbc的修改配置,发现pom.xml ojdbc版本变为8.0 改为 7.0或6.0 项目可以启动。使用ojdbc8在其他电脑可以启动。确定是本机环境和ojdbc8有冲突。

  4. 查询本地环境对ojdbc8.0的影响,但是没有找到解决方法。

解决方法

在本机调试程序的时候使用ojdbc7.0,打包时使用8.0版本。

经验

  1. ojdbc 在不同环境链接不同版本的oracle或者运行环境改变,有可以出现问题,需要在运行换下反复尝试。
  2. druid 链接卡死(不抛出异常)的问题,找到点滴积累成江河的方案。初始化设置breakAfterAcquireFailure=true
public DataSource build(String url, String username, String password) throws Exception {
     Properties p =new Properties();
     p.put("init","false");
     p.put("url", url);
     p.put("username", username);
     p.put("password", password);
     DruidDataSource dataSource = (DruidDataSource) DruidDataSourceFactory.createDataSource(p);
     dataSource.setBreakAfterAcquireFailure(true);
     dataSource.init();
     return dataSource;
}
posted @ 2021-02-23 16:07  foola  阅读(1756)  评论(0)    收藏  举报