Spring Boot实战之Java配置

Java配置

Java配置Spring4.x推荐的配置方式,可以完全替代xml配置;Java配置也是Spring Boot推荐的配置方式。

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

  • @Configuration声明当前类是一个配置类,相当于一个Spring配置的xml文件。
  • @Bean注解在方法上,声明当前方法的返回值为一个Bean

全局配置使用Java配置(如数据库相关配置、MVC相关配置),业务Bean的配置使用注解配置(@Service、@Component、@Repository、@Controller)。

简单的Java配置实例

编写功能类的Bean

package com.cqvie.spring4.javaconfig;

//此处没有使用@Service声明Bean
public class FunctionService {

    public String sayHello(String word) {

        return "Hello " + word + " !";
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

使用功能类的Bean

package com.cqvie.spring4.javaconfig;

//此处没有@Service声明Bean
public class UserFunctionService {

    // 此处没有@Autowried注解注入Bean
    FunctionService functionService;

    public void setFunctionService(FunctionService functionService) {
        this.functionService = functionService;
    }

    public String sayHello(String word) {

        return functionService.sayHello(word);
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

配置类

package com.cqvie.spring4.javaconfig;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration // 声明当前类只一个配置类,此处没有使用包扫描,是因为所有的Bean都在此类中定义
public class JavaConfig {

    @Bean // 声明当前方法的返回值是一个Bean,Bean的名称是方法名
    public FunctionService functionService() {

        return new FunctionService();
    }

    @Bean
    public UseFunctionService useFunctionService() {

        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService());// 注入FunctionService的Bean的时候直接调用functionService()
        return useFunctionService;
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

运行

package com.cqvie.spring4.javaconfig;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

public class Main {

    public static void main(String[] args) {

        AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(JavaConfig.class);
        UseFunctionService useFunctionService = context.getBean(UseFunctionService.class);

        System.out.println(useFunctionService.SayHello("JavaConfig"));

        context.close();
    }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

运行结果 
Java配置

猜你喜欢

转载自blog.csdn.net/mojiezuo123/article/details/81129059
今日推荐