02-SpringBoot——Spring基础-Java配置

Spring Boot & Spring Cloud 同时被 2 个专栏收录
43 篇文章 0 订阅
32 篇文章 16 订阅

02-SpringBoot——Spring基础-Java配置


【博文目录>>>】


【项目源码>>>】


【Java配置】


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

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

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

可以混合使用Java 配置和注解配置。何时使用Java 配置或者注解配置?主要的原则是:全局配置使用Java 配置(如数据库相关配置、MVC 相关配配置),业务Bean 的配置使用注解配置(@Service 、@Component、@Repository 、@Controller )。

package com.example.spring.framework.javaconfig;

import org.springframework.stereotype.Service;

/**
 * 使用@Service注解声明当前FunctionService 类是Spring 管理的一个Beano 其中,使
 * 用@Component、@Service、@Repository和@Controller 是等效的,可根据需要选用。
 *
 * Author: 王俊超
 * Date: 2017-07-10 08:01
 * All Rights Reserved !!!
 */
@Service
public class FunctionService {
    public String sayHello(String word) {
        return "Hello " + word + " !";
    }

}
package com.example.spring.framework.javaconfig;

/**
 * Author: 王俊超
 * Date: 2017-07-10 08:03
 * All Rights Reserved !!!
 */
public class UseFunctionService {

    FunctionService functionService;

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

    public String SayHello(String word) {
        return functionService.sayHello(word);
    }

}
package com.example.spring.framework.javaconfig;

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

/**
 * 1、@Configuration 声明当前类是一个配置类
 * 2、@Bean将方法的返回值当作一个bean,bean的名称就是返回值的名称
 * 3、使用手动注入
 * 4、使用容器自动注入
 *
 * Author: 王俊超
 * Date: 2017-07-10 08:20
 * All Rights Reserved !!!
 */

@Configuration // 1
public class JavaConfig {
    @Bean // 2
    public FunctionService functionService() {
        return new FunctionService();
    }

    @Bean
    public UseFunctionService useFunctionService() {
        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService()); // 3
        return useFunctionService;
    }

    @Bean
    public UseFunctionService useFunctionService2(FunctionService functionService) {// 4
        UseFunctionService useFunctionService = new UseFunctionService();
        useFunctionService.setFunctionService(functionService);
        return useFunctionService;
    }
}
package com.example.spring.framework.javaconfig;

import org.springframework.context.annotation.AnnotationConfigApplicationContext;

/**
 * Author: 王俊超
 * Date: 2017-07-10 08:21
 * All Rights Reserved !!!
 */
public class Main {
    public static void main(String[] args) {
        AnnotationConfigApplicationContext context =
                new AnnotationConfigApplicationContext(JavaConfig.class);

        // 获取第一个bean
        UseFunctionService useFunctionService = context.getBean("useFunctionService",
                UseFunctionService.class);
        System.out.println(useFunctionService.SayHello("java config"));

        // 获取第二个bean
        UseFunctionService useFunctionService2 = context.getBean("useFunctionService2",
                UseFunctionService.class);
        System.out.println(useFunctionService2.SayHello("java config2"));

        context.close();

    }
}

【运行结果】

这里写图片描述

  • 1
    点赞
  • 1
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
<p> <span style="font-size:16px;color:#E53333;"><strong>内容简介:</strong></span> </p> <p> <span style="font-size:16px;">本课程主要是从最基础的技术要点一步一个脚印的介绍Spring Boot2.0相关的核心技术栈,包括如何基于Spring Boot2.0搭建一个企业级的多模块项目、整合Spring MVC和Mybatis实现项目中功能模块的CRUD,校验器Validator、Lombok、动态配置参数、开发环境切换、全局异常处理、定时任务、多线程、热加载、发送邮件、上传下载文件、多数据源等核心干货,为各位小伙伴提供企业级项目开发中常见且典型的核心技术!</span> </p> <p> <br /> </p> <p> <span style="font-size:16px;color:#E53333;"><strong>其课程大纲如下所示:</strong></span> </p> <p> <img src="https://img-bss.csdn.net/202004070546409819.jpg" alt="" /><span style="font-size:16px;"></span> </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p> <br /> </p> <p> <span style="font-size:16px;">在课程的最后,我们介绍并实战了一个典型的应用场景:“<span style="font-size:16px;">用户注册</span>”,主要是将前面章节介绍的内容融入到一个完整的功能模块中,做到学以致用!</span><span style="font-size:16px;">其完整的功能流程图如下图所示:</span> </p> <p> <img src="https://img-bss.csdn.net/202004070548344015.png" alt="" /> </p> <p> <span style="font-size:16px;">基本要求:</span> </p> <span style="font-size:16px;"></span> <p> <br /> </p> <p> <br /> </p> <p> <span style="font-size:16px;">1、</span><span style="font-size:16px;">基本要求:具备一定的</span><span style="font-size:16px;">JavaSE</span><span style="font-size:16px;">以及</span><span style="font-size:16px;">Java Web</span><span style="font-size:16px;">项目的开发基础、了解</span><span style="font-size:16px;">spring boot</span><span style="font-size:16px;">更佳</span><span></span> </p> <p> <span style="font-size:16px;">2、</span><span style="font-size:16px;">工具要求:会使用</span><span style="font-size:16px;">Intellij IDEA </span><span style="font-size:16px;">、</span><span style="font-size:16px;">Navicat </span><span style="font-size:16px;">以及</span><span style="font-size:16px;"> Postman</span> </p>
相关推荐
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页

打赏

Wang-Junchao

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值