ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

[ Spring Boot ] Bean 单例注入

2021-06-09 15:54:29  阅读:126  来源: 互联网

标签:return name Spring Boot Bean TestBean public String


Spring Boot 注入Bean 一、@Bean方式
1、在WebMvcConfigurerAdapter的子类中添加@Bean,返回实例对象即可
package cn.com.showclear.plan.impl.plan;

/**
 * 测试
 *
 * @author YF-XIACHAOYANG
 * @date 2017/12/13 18:04
 */
public class TestBean {

    private String name;

    /*可以自定义构造器*/
    public TestBean(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }

    public TestBean setName(String name) {
        this.name = name;
        return this;
    }

    public void hello() {
        System.out.println(this.name);
    }
}

@Bean注入

package cn.com.showclear.config;

@SpringBootApplication
@ComponentScan(basePackages = "cn.com.showclear")
@EnableScheduling
public class WebMvcConfig extends WebMvcConfigurerAdapter {

    ...

    @Bean
    public TestBean getTestBean() {
        return new TestBean("hello bean1!");
    }
}
2、使用@Autowired引用TestBean
@RestController
@RequestMapping("/data/plan/config/")
public class PlanConfigController {

    @Autowired
    private TestBean testBean;
    
     /**
     * 加载预案应急事件标签组[含有组内标签信息]
     *
     * @return
     */
    @RequestMapping(value = "loadTagGroupList", method = RequestMethod.POST)
    public RespMapJson loadTagGroupList(String groupName) {
        testBean.hello();
        return planConfigService.load(planHandleDeliver.getTagConfigHandle().init(this, groupName));
    }
2、@Component方式
1、Bean定义
package cn.com.showclear.plan.impl.plan;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

/**
 * 测试
 *
 * @author YF-XIACHAOYANG
 * @date 2017/12/13 18:04
 */
@Component
public class TestBean2 {

    @Autowired
    private TestBean testBean;

    private String name;

    /**
     * 构造器必须是无参构造器
     */
    public TestBean2() {
        this.name ="TestBean2";
    }

    public String getName() {
        return name;
    }

    public TestBean2 setName(String name) {
        this.name = name;
        return this;
    }

    public void hello() {
        System.out.println(name);
    }

    public void hello2() {
        System.out.println(testBean.getName());
    }
}
2、使用方式和方式一相同
...
    @Autowired
    private TestBean2 testBean2;

    /**
     * 加载预案应急事件标签组[含有组内标签信息]
     *
     * @return
     */
    @RequestMapping(value = "loadTagGroupList", method = RequestMethod.POST)
    public RespMapJson loadTagGroupList(String groupName) {
        testBean2.hello();
        testBean2.hello2();
        return planConfigService.load(planHandleDeliver.getTagConfigHandle().init(this, groupName));
    }

console:

更多

扫码关注“架构探险之道”,获取更多源码和文章资源

在这里插入图片描述

知识星球(扫码加入获取源码和文章资源链接)

在这里插入图片描述

 

标签:return,name,Spring,Boot,Bean,TestBean,public,String
来源: https://blog.51cto.com/u_15263565/2884871

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有