关于spring @postConstruct失效的问题

在定义下面这个类的时候,我定义了一个init()方法,然后用@PostConstruct方法注解,目的是为了让项目启动的时候运行此方法,初始化静态常量:

SFtpUtil {

    String ;
    String ;
    String ;
    ;
    String ;

    init() {
        Resource resource = ClassPathResource();
        {
            Properties props = PropertiesLoaderUtils.(resource);
            = (String)props.get();
            = (String)props.get();
            = (String)props.get();
            = Integer.((String)props.get());
            = (String)props.get();
        } (IOException e) {
            .error();
            e.printStackTrace();
        }
        .info();
    }
    }

但是在容器加载之后并没有运行init()方法,搞了半天,后来我在类的上面加上注解@Conponent之后就执行了,估计是spring只有在父类被声明需要加入到容器的时候才会扫描运行@PostConstruct注解的方法。但是我不是很确定,这里先记录一下。如果有理解比较深入的大神,望在下面留言!

时间: 2024-10-01 02:15:26

关于spring @postConstruct失效的问题的相关文章

Spring事务失效的原因

Spring事务失效的原因 5种大的原因 如使用mysql且引擎是MyISAM,则事务会不起作用,原因是MyISAM不支持事务,可以改成InnoDB 假如有兴趣了解 mysql中 " engine=innodb " 以及 " engine=innodb 和engine=myisam的区别 ",可以读读这篇文章:http://blog.sina.com.cn/s/blog_6ac4c6cb01018pb1.html 可使用下述语句之一检查表的标类型: SHOW TAB

Spring AOP失效之谜

每天学习一点点 编程PDF电子书免费下载: http://www.shitanlife.com/code 什么是AOP1 AOP(Aspect Oriented Programming),即面向切面编程,其是OOP(Object Oriented Programming,面向对象编程)的补充和完善.在面向对象编程的世界中,我们很容易理解OOP的思想,简单来说,OOP引入封装.继承.多态等概念来建立一种对象层次结构,这种层次结构是纵向的.虽然OOP允许开发者定义纵向的关系,但并不适合定义横向的关系

Spring 事务失效

隔离级别 在 TransactionDefinition.java 接口中,定义了“四种”的隔离级别枚举: /** * [Spring 独有]使用后端数据库默认的隔离级别 * * MySQL 默认采用的 REPEATABLE_READ隔离级别 * Oracle 默认采用的 READ_COMMITTED隔离级别 */ int ISOLATION_DEFAULT = -1; /** * 最低的隔离级别,允许读取尚未提交的数据变更,可能会导致脏读.幻读或不可重复读 */ int ISOLATION_R

spring postconstruct

package com.jdw.service.impl; import java.util.List; import javax.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Serv

spring事务失效情况分析

详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt113 <!--[if !supportLists]-->一.<!--[endif]-->声明式事务和注解事务并存的情况下,事务失效. 该情况常见配置如下: <!--事务声明--> <bean name="transactionManager" class="org.springframework.jdbc.dat

通过Spring @PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作

关于在spring  容器初始化 bean 和销毁前所做的操作定义方式有三种: 第一种:通过@PostConstruct 和 @PreDestroy 方法 实现初始化和销毁bean之前进行的操作 第二种是:通过 在xml中定义init-method 和  destory-method方法 第三种是:通过bean实现InitializingBean和 DisposableBean接口 下面演示通过  @PostConstruct 和 @PreDestory 1:定义相关的实现类: package

1.JSON 转换对象失败问题 2.spring注入失效

今天做项目中将一个json 字符串转换为对象,但结果怎么都转换不了!——————最后发现问题,原来是因为这个类我给他添加了带参数的构造器!导致转换失败! 在添加一个无参的构造器就好了! 第二个:今天调试代码时发现spring注入总是失效!--------最后发现原来是因为我们new 一个新的线程,在新线程里面跑的!导致Spring  注入失败! 解决办法:http://blog.csdn.net/wuzongpo/article/details/7191467(就是重新创建一个Spring容器)

一次想不到的Spring事务失效问题跟踪(事务不会滚)

周末,鼓捣了下spring事务.spring事务配置其实很简单,这是spring优点.但问题是,不知道其中原理,遇到点问题,就抓瞎了.我就犯傻了一次. 在追踪问题时,搜索到的答案,主要有以下几类. springmvc 上下文,与service上下文冲突 数据表不支持事务(mysql 中myisam) 异常类型,默认支持RuntimeException,如果是其他异常则需要专门配置 我的问题,上面原因都不是.很遗憾. @Transactional(isolation= Isolation.READ

注释驱动的 Spring cache 缓存介绍--转载

概述 Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果. Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Expression Language)来定义缓存的 key 和各种 condition,还提供开箱即用的缓存