zoukankan      html  css  js  c++  java
  • Spring基于注解的配置

    Spring 中为了减少 XML 配置,可以声明一个配置类类对 bean 进行配置,主要用到两个注解 @Configuration 和 @bean,例子:

    首先,XML 中增加如下的配置来启动 java 配置:

    <context:component-scan base-package = "com.shiyanlou.demo.config"/>
    

    定义一个配置类,用 @Configuration 注解该类,等价于 XML 里的 beans,用 @Bean 注解方法,等价于 XML 配置的 bean,方法名等于 bean Id。创建包 com.shiyanlou.demo.config,然后依次创建 SpringConfig.java、Service.java 和 Client.java,代码如下:
    SpringConfig.java:

    package com.shiyanlou.demo.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class SpringConfig {
    
        @Bean
        public Service service(){
            return new Service();
        }
        @Bean
        public Client client(){
            return new Client();
        }
    }
    

    Service.java:

    package com.shiyanlou.demo.config;
    
    public class Service {
        public String  sayHello(){
            return "HelloWord!";
        }
    }
    

    Client.java:

    package com.shiyanlou.demo.config;
    
    import org.springframework.beans.factory.annotation.Autowired;
    
    public class Client {
        @Autowired
        Service service;
        public void invokeService(){
            System.out.println("client invoke :" + service.sayHello());
        }
    
    }
    

    最后修改 App.java 的代码:

    package com.shiyanlou.demo;
    
    import com.shiyanlou.demo.config.Client;
    import com.shiyanlou.demo.config.SpringConfig;
    import com.shiyanlou.demo.helloworld.HelloWorld;
    import com.shiyanlou.demo.entity.Dog;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.annotation.AnnotationConfigApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    import org.springframework.context.support.AbstractApplicationContext;
    
    public class App {
    
        public static void main(String[] args) {
    
            ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
            Client client = context.getBean("client", Client.class);
            client.invokeService();
        }
    }
    

    运行

    mvn compile
    mvn exec:java -Dexec.mainClass="com.shiyanlou.demo.App"
    

    实验结果如下所示:

  • 相关阅读:
    全面整理的C++面试题
    在chrome下安装Proxy SwitchySharp插件
    VC中获取窗体句柄的各种方法
    炙手可热的12款站点模板推荐
    _blank开新窗体不符合标准?
    欢迎大家来我的小站
    白话经典算法系列之中的一个 冒泡排序的三种实现
    CRF++使用小结(转)
    智能点餐系统开发纪实2-----系统总体结构和业务流程
    Windows Mobile 6.0 SDK和中文模拟器下载
  • 原文地址:https://www.cnblogs.com/sakura579/p/13965026.html
Copyright © 2011-2022 走看看