• 5、通过在classpath自动扫描方式把组件纳入spring容器中管理例子


    1.此处要注入一股Functions类,采用扫描注入的组件的方式须该类有一个接口,先写出Functions接口FunctionsInterface.java
    package scan.impl;

    public interface FunctionsInterface {

        public abstract void show();

    }
    2.Functions.java实现接口
    package scan.impl;

    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;

    import org.springframework.stereotype.Service;

    @Service("functions")
    public class Functions implements FunctionsInterface {
        /* (non-Javadoc)
         * @see scan.impl.FunctionsInterface#show()
         */

        @Override
        public void show() {
            System.out.println("我是扫描装配的!");
        }
        
        @PostConstruct
        public void init() {
            System.out.println("我是初始化方法!");
        }
        
        @PreDestroy
        public void destroy() {
            System.out.println("我是销毁方法!");
        }
    }
    3.测试类FunctionTest.java
    package scan.impl;

    import javax.annotation.PostConstruct;
    import javax.annotation.PreDestroy;

    import org.springframework.stereotype.Service;

    @Service("functions")
    public class Functions implements FunctionsInterface {
        /* (non-Javadoc)
         * @see scan.impl.FunctionsInterface#show()
         */

        @Override
        public void show() {
            System.out.println("我是扫描装配的!");
        }
        
        @PostConstruct
        public void init() {
            System.out.println("我是初始化方法!");
        }
        
        @PreDestroy
        public void destroy() {
            System.out.println("我是销毁方法!");
        }
    }
    4.运行结果:
    我是初始化方法!
    Finished creating instance of bean 'functions'
    Returning cached instance of singleton bean 'org.springframework.context.annotation.internalConfigurationAnnotationProcessor'
    Returning cached instance of singleton bean 'org.springframework.context.annotation.internalAutowiredAnnotationProcessor'
    Returning cached instance of singleton bean 'org.springframework.context.annotation.internalRequiredAnnotationProcessor'
    Returning cached instance of singleton bean 'org.springframework.context.annotation.internalCommonAnnotationProcessor'
    Returning cached instance of singleton bean 'org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor'
    Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [org.springframework.context.support.DefaultLifecycleProcessor@469a9b65]
    Returning cached instance of singleton bean 'lifecycleProcessor'
    Publishing event in org.springframework.context.support.ClassPathXmlApplicationContext@5e7808b9: org.springframework.context.event.ContextRefreshedEvent[source=org.springframework.context.support.ClassPathXmlApplicationContext@5e7808b9: startup date [Sun Dec 15 14:14:17 CST 2013]; root of context hierarchy]
    getProperty("spring.liveBeansView.mbeanDomain", String)
    Searching for key 'spring.liveBeansView.mbeanDomain' in [systemProperties]
    Searching for key 'spring.liveBeansView.mbeanDomain' in [systemEnvironment]
    PropertySource [systemEnvironment] does not contain 'spring.liveBeansView.mbeanDomain'
    PropertySource [systemEnvironment] does not contain 'spring_liveBeansView_mbeanDomain'
    PropertySource [systemEnvironment] does not contain 'SPRING.LIVEBEANSVIEW.MBEANDOMAIN'
    PropertySource [systemEnvironment] does not contain 'SPRING_LIVEBEANSVIEW_MBEANDOMAIN'
    Could not find key 'spring.liveBeansView.mbeanDomain' in any property source. Returning [null]
    Returning cached instance of singleton bean 'functions'
    我是扫描装配的!
    Closing org.springframework.context.support.ClassPathXmlApplicationContext@5e7808b9: startup date [Sun Dec 15 14:14:17 CST 2013]; root of context hierarchy
    Publishing event in org.springframework.context.support.ClassPathXmlApplicationContext@5e7808b9: org.springframework.context.event.ContextClosedEvent[source=org.springframework.context.support.ClassPathXmlApplicationContext@5e7808b9: startup date [Sun Dec 15 14:14:17 CST 2013]; root of context hierarchy]
    Returning cached instance of singleton bean 'lifecycleProcessor'
    Destroying singletons in org.springframework.beans.factory.support.DefaultListableBeanFactory@585976c2: defining beans [functions,org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org.springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.ConfigurationClassPostProcessor.importAwareProcessor]; root of factory hierarchy
    Invoking destroy method on bean 'functions': public void scan.impl.Functions.destroy()
    我是销毁方法!




  • 相关阅读:
    给入门程序员的一些学习建议(一定要看)
    拦截器工作原理
    Struts 2中如何解决中文乱码问题?
    struts1与struts2的区别。
    MVC是什么?
    spring MVC工作原理
    C#中,子类构造函数调用父类父类构造函数的正确方式
    泛型的优点
    jsp的page、request、session、application四个作用域的作用
    jsp转发与重定向的区别
  • 原文地址:https://www.cnblogs.com/zmpandzmp/p/3648815.html
Copyright © 2020-2023  润新知