• spring之java配置


    java配置是通过@Configuration和@Bean来实现的

    @Configuration:声明当前类是一个配置类,相当于一个spring配置的xml文件

    @Bean:注解在方法上面,声明当前方法的返回值为一个Bean

    全局配置使用 java配置(如数据库相关配置,mvc相关配置),业务Bean的配置使用注解配置

    /**
     * 此处没有使用@Service声明Bean
     *
     * @author Holley
     * @create 2018-07-06 10:50
     **/
    public class HelloService {
        public String sayHello(String name) {
            return "Hello " + name + "!";
        }
    }
    /**
     * 此处没有使用@Service声明Bean,也没有使用@Autowired注入Bean
     *
     * @author Holley
     * @create 2018-07-06 11:32
     **/
    public class UseHelloService{
    
        private HelloService helloService;
    
    public void setSayHello(HelloService helloService) { this.helloService = helloService; }
    public String useSayHello(String name) { return helloService.sayHello(name); }
    }
    /**
     * 此处没有使用包扫描,因为所有的bean都在此类中定义了.
    * Bean的名称就是方法名 * 注入HelloService的Bean时,直接调用helloService()方法 *
    @author Holley * @create 2018-07-06 11:39 **/ @Configuration public class MyConfig { @Bean public HelloService helloService(){ return new HelloService(); } @Bean public UseHelloService useHelloService(){ UseHelloService useHelloService = new UseHelloService(); useHelloService.setSayHello(helloService()); return useHelloService; }
    // 另外一种注入方式,直接将HelloService作为参数给useHelloService().在spring容器中,只要存在某个Bean,就可以在另外一个Bean的声明方法的参数中注入。如:
        /* @Bean
        public UseHelloService useHelloService(HelloService helloService){ 
    UseHelloService useHelloService = new UseHelloService();
    useHelloService.setSayHello(helloService);
    return useHelloService;
    }*/
    }
    public class Test {
        public static void main(String[] args){
            // 使用AnnotationConfigApplicationContext作为spring容器
            AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(MyConfig.class);
            UserHelloService userHelloService = context.getBean(UserHelloService.class);
            System.out.println(userHelloService.useSayHello("holley"));
            context.close();
        }
    }
  • 相关阅读:
    visual studio 注释与取消注释
    visual studio错误之 无法将参数 1 从“const char [5]”转换为“char *”
    sdl_ffmpeg_video
    sdl_ffmpeg_audio
    visual studio添加第三方库文件,每次都要配置包含目录和库目录(繁琐),一劳永逸的办法
    visual studio 错误之errorC2362:“gototmpstr”跳过了“XXXX”的初始化操作
    visual studio调用SDL2和ffmpeg
    没用过得库函数
    visual studio编译错误之xx被声明为已否决
    vim把一个文件的若干行追加到另一个文件
  • 原文地址:https://www.cnblogs.com/zhlblogs/p/9273231.html
Copyright © 2020-2023  润新知