`

spring里面想要让一个类的实例在所有属性都准备好之后就让它自动执行某些方法

阅读更多
此工程的运行结果得出的结论是:spring里面想要让一个类的实例在所有属性都准备好之后就让它自动执行某些方法有两种方式:
1、实现InitializingBean接口,并重写接口里面的唯一的一个方法afterPropertiesSet()方法;
2、在此类里面定义一个任意名称的方法(名称没有限定),然后在applicationContext.xml里申明此类的bean的时候通过init-method属性指定此方法。那么此方法就会在那个时间点被调用

这两种方式的作用效果是一样的,但是推荐使用第二种方式,因为第一种方式需要实现InitializingBean接口,就会和spring的接口耦合起来,有些侵入的味道,不符合spring的倡导原则。



同样的,spring里面想要让一个类的实例销毁之前自动自行某个方法有两种方式:
1、实现DisposableBean接口,并重写接口里面的唯一的一个方法distroy()方法;
2、在此类里面定义一个任意名称的方法(名称没有限定),然后在applicationContext.xml里申明此类的bean的时候通过distroy-method属性指定此方法。那么此方法就会在那个时间点被调用
分享到:
评论

相关推荐

    测试spring中的org.springframework.beans.factory.InitializingBean

    这个接口只包含一个方法:`afterPropertiesSet()`,当bean的所有依赖属性被注入后,Spring容器会自动调用这个方法,允许bean进行自我配置或执行必要的初始化操作。 `InitializingBean`接口的使用是Spring IoC...

    springmybatis

    请注意,这里面有一个方法名 selectUserByID 必须与 User.xml 里面配置的 select 的id 对应() 重写测试代码 程序代码 程序代码 public static void main(String[] args) { SqlSession session = ...

    Spring Live中文

    - 当bean完成初始化并且准备好使用时,就处于就绪状态。 **销毁bean:** - 当Spring容器关闭时,可以定义销毁方法来释放资源或进行必要的清理工作。 **ApplicationContext: 与bean对话:** - `...

    SSM框架面试题.pdf

    当一个类不再控制其依赖对象的创建过程时,这种控制权就被“反转”给了Spring容器。 3. **DI(依赖注入)与IOC的关系** - DI是实现IOC的一种手段。通过DI,可以在运行时将依赖注入到对象中,而不是在代码中硬编码...

    1剑盛二面准备试题.txt1剑盛二面准备试题.txt

    24. **HashSet的实现原理**:HashSet内部实际上是使用HashMap来实现的,所有的元素都存储在HashMap的key上,value则使用一个固定的虚拟对象。 25. **ArrayList和LinkedList的区别**:ArrayList是基于动态数组实现的...

    JAVA面试题附答案,祝你面试顺利

    - **题目解析**: 构造方法没有返回类型,并且当创建一个新对象时会被调用,因此正确答案是`C: constructor在一个对象被new时执行`。 #### 11. 检查型异常 - **知识点**: 检查型异常是在编译阶段就必须处理的异常,...

    java面试常见问题.docx

    5. 抽象类与接口:抽象类是一种不能实例化的类,它可以包含抽象方法(没有方法体的方法)。抽象类用于定义公共接口和共享属性,为子类提供模板。接口则是一种完全抽象的类型,只能包含常量和抽象方法。接口更强调多...

    1000道JAVA面试题大全,所有涉及笔试,面试的JAVA题目

    - **同步锁**:当一个线程进入一个对象的`synchronized`方法或代码块时,它会自动获得该对象的锁。如果另一个线程试图访问同一个对象的另一个`synchronized`方法,则必须等待锁释放。 以上这些知识点涵盖了Java面试...

    sping live 中文版

    - **强大的社区支持**:Spring 拥有一个庞大的开发者社区,这确保了其持续的更新和完善,同时也提供了丰富的资源和技术支持。 #### 1.3 常见批评及应对 - **学习曲线**:尽管 Spring 功能强大,但其学习曲线相对较...

    JAVA J2EE面试1

    - **获取类的所有方法和属性**:用于进行方法调用、属性赋值等。 - **实现框架**:如Spring框架的核心就是依赖于反射机制。 #### 9. abstract method是否可以同时是static、native、synchronized? - **abstract ...

    java_学习资料

    - **概念**:DispatchAction是一种特殊的Action,它可以将请求转发到不同的方法进行处理,这使得在一个Action类中可以处理多种类型的请求。 - **优点**:简化了Action的编写,避免了大量的Action类。 **动态form** ...

    java面试题,这是一些java方面的面试题目,给大家参考参考

    Lambda表达式是Java 8引入的一个新特性,它允许我们以一种简洁的方式定义匿名函数。Lambda表达式的主要应用场景包括: - **作为参数传递**:可以将Lambda表达式作为方法的参数,从而避免创建匿名内部类。 - **延迟...

    BeetlSQL 2.10中文文档

    BeetSql是一个全面而强大的DAO工具,它融合了Hibernate与Mybatis的优点,特别适合那些认为SQL语言处于核心地位,同时也希望利用工具自动生成大量常用SQL的应用程序。 - **开发效率**: 使用BeetSql时,开发者无需...

    java面试题实践收集及答案详解

    - **类型检查**:判断一个对象是否属于某个类或接口的实例。 - **运行时类型识别**:可以在运行时动态识别对象的具体类型。 ##### 7. 数据库完整性约束 - **实体完整性**:确保每条记录都有唯一的标识符。 - **域...

    跳槽涨薪精选面试题.pdf

    - 线程池管理一组预先创建好的线程,当有任务提交时,线程池选择一个空闲线程执行任务。 - 线程池通过拒绝策略处理超出核心线程数或最大线程数的任务。 - **JVM中哪些是线程共享区** - 方法区、堆区是所有线程...

    java面试题及答案-非常全面(包括基础、网络、数据结构、算法及IT大厂面经)

    - **观察者模式**:当一个对象的状态发生改变时,所有依赖于它的对象都会得到通知并自动更新。 ### JAVA内存泄露与OutOfMemory - **内存泄露**:对象不再被使用但仍然被引用,导致无法被垃圾回收器回收。 - **解决...

Global site tag (gtag.js) - Google Analytics