网易首页 > 网易号 > 正文 申请入驻

SpringBoot中如何进行Bean配置

0
分享至

Bean配置。

在使用Spring进行开发配置的时候有两类配置:*.xml配置文件、配置的Bean(@Configure),于是在SpringBoot的开发的时间里面,为了继续崇尚所谓的“零配置”,提供有一种简单的支持,也就是说如果现在你真的有配置需要通过*.xml文件编写,但是又不想出现配置文件的话,这个时候最简单的做法就是使用Bean的方式进行类的配置。

前提:该配置程序的Bean所在的包必须是程序启动类所在包的子包之中,这样才可以自动扫描到。

下面准备一个不是很正规的程序,建立一个业务接口,而后定义这个接口的子类:

package com.gwolf.service;

public interface IMessageService {

public String info();

}

创建一个子类实现IMessageService接口:

package com.gwolf.service.impl;

import com.gwolf.service.IMessageService;

import org.springframework.stereotype.Service;

@Service

public class MessgeServiceImpl implements IMessageService{

@Override

public String info() {

return "www.baidu.com";

}

}

在控制器MessageController中注入IMessageService:

package com.gwolf.controller;

import ch.qos.logback.core.net.SyslogOutputStream;

import com.gwolf.service.IMessageService;

import com.gwolf.util.controller.AbstractBaseController;

import org.springframework.web.bind.annotation.PathVariable;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

@RestController

public class MessageController extends AbstractBaseController{

@Resource

private IMessageService messageService;

@RequestMapping(value="/",

method = RequestMethod.GET)

public String idnex() {

return this.messageService.info();

}

@RequestMapping(value="/echo",

method = RequestMethod.GET)

public String echo(String mid) {

System.out.println("访问:" + super.getMessage("member.add.action"));

return super.getMessage("welcome.msg",mid);

}

}

建立一个测试类:

package com.gwolf.test;

import com.gwolf.StartSpringBootMain;

import com.gwolf.controller.HelloController;

import com.gwolf.controller.MessageController;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import org.springframework.test.context.web.WebAppConfiguration;

import javax.annotation.Resource;

@SpringBootTest(classes = StartSpringBootMain.class)

@RunWith(SpringJUnit4ClassRunner.class)

@WebAppConfiguration

public class TestMessageController {

@Resource

private MessageController messageController;

@Test

public void testIndex() {

System.out.println(this.messageController.idnex());

}

@Test

public void testEcho() {

System.out.print(this.messageController.echo("www.baidu.com"));

}

}

下面利用以上的程序来了解一下什么叫做Bean配置,为了清楚的发现Bean的特点删除掉业务实现子类中的“@Service”注解,也就是说这个对象现在无法直接注入,于是下面在启动类所在包的子包里面建立一个配置程序类:com.gwolf.config.ServiceConfig。

package com.gwolf.config;

import com.gwolf.service.IMessageService;

import com.gwolf.service.impl.MessgeServiceImpl;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

@Configuration //此处为配置项

public class ServiceConfig {

@Bean //此处返回的是一个Spring的配置Bean,与xml的<bean>等价

public IMessageService getMessageService() {//方法名称随便写

return new MessgeServiceImpl();

}

}

现在再次验证程序是否能够正常执行:

此时采用了自动扫描Bean的模式来进行相关对象的配置。SSM或SSH开发框架出现的时间比较长,现在迁移到SpringBoot之中,那么说如果你现在已经有一个非常完善的xml配置文件出现了,那么难道还需要将整个的xml配置文件转化为Bean配置吗?为了防止这类情况出现,SpringBoot也支持有配置文件的读取。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
中国人保董事长丁向群任国家金融监督管理总局党委书记

中国人保董事长丁向群任国家金融监督管理总局党委书记

澎湃新闻
2026-05-29 19:16:26
广州一商场空调不制冷似“蒸笼”,商户叫苦连天,客人:来了就想走

广州一商场空调不制冷似“蒸笼”,商户叫苦连天,客人:来了就想走

新浪财经
2026-05-29 19:06:05
美国法官裁定将特朗普名字从肯尼迪中心移除

美国法官裁定将特朗普名字从肯尼迪中心移除

财联社
2026-05-30 06:06:06
不满求购小蜘蛛!马竞回击巴萨:HWG,4张门票+瓜子换亚马尔

不满求购小蜘蛛!马竞回击巴萨:HWG,4张门票+瓜子换亚马尔

奥拜尔
2026-05-30 00:03:36
台儿庄战役伤亡争议八十年,日方档案还原真实战况

台儿庄战役伤亡争议八十年,日方档案还原真实战况

磊子讲史
2026-05-26 14:22:17
上海别墅邻里"互撕",互相举报!相关部门已立案

上海别墅邻里"互撕",互相举报!相关部门已立案

看看新闻Knews
2026-05-29 20:54:17
巴萨官宣夏窗首签!8000万欧引进25岁英格兰神锋+签5年 队史第7贵

巴萨官宣夏窗首签!8000万欧引进25岁英格兰神锋+签5年 队史第7贵

风过乡
2026-05-30 05:35:16
全力以赴打好防汛总体战、主动仗!龚正市长检查防汛工作并出席防汛工作会议

全力以赴打好防汛总体战、主动仗!龚正市长检查防汛工作并出席防汛工作会议

澎湃新闻
2026-05-29 20:06:27
笑死了!孙杨送张豆豆的三句话上热搜,没想到评论区句句都是梗

笑死了!孙杨送张豆豆的三句话上热搜,没想到评论区句句都是梗

娱乐圈笔娱君
2026-05-29 14:16:50
浙江两地人大常委会最新任免名单公布

浙江两地人大常委会最新任免名单公布

新浪财经
2026-05-28 19:01:08
印度网民:明明印军能在一两周内占领中国,为什么莫迪还不宣战?

印度网民:明明印军能在一两周内占领中国,为什么莫迪还不宣战?

混沌录
2026-05-27 21:50:36
台风“蔷薇”逐渐增强!三预警齐发,多地大暴雨

台风“蔷薇”逐渐增强!三预警齐发,多地大暴雨

大象新闻
2026-05-29 11:31:07
40岁朱珠在北京餐馆现身,穿长裙配拖鞋,长发飘飘,老美了!

40岁朱珠在北京餐馆现身,穿长裙配拖鞋,长发飘飘,老美了!

暖心萌阿菇凉
2026-05-30 04:40:35
女子因桃花眼走红,订婚两年热度依旧,网友喊话:88号快回来上班

女子因桃花眼走红,订婚两年热度依旧,网友喊话:88号快回来上班

梅子的小情绪
2025-12-19 14:04:18
家家有本难念的经!林俊杰跟哥嫂开撕,疑似被吃绝户仅是冰山一角

家家有本难念的经!林俊杰跟哥嫂开撕,疑似被吃绝户仅是冰山一角

好贤观史记
2026-05-29 10:55:39
56岁徐正源真把中超玩透了 19天封神:铁人从倒4变正6 李金羽尴尬

56岁徐正源真把中超玩透了 19天封神:铁人从倒4变正6 李金羽尴尬

风过乡
2026-05-29 22:24:06
下轮将战王曦雨,科斯蒂亚残暴双蛋2-0战胜塞拉晋级法网女单16强

下轮将战王曦雨,科斯蒂亚残暴双蛋2-0战胜塞拉晋级法网女单16强

懂球帝
2026-05-29 23:02:13
《黄石》彪悍女星转性了?衍生剧归来,两个经典名场面竟消失

《黄石》彪悍女星转性了?衍生剧归来,两个经典名场面竟消失

时光慢旅人
2026-05-29 00:15:36
路撑不住,养护成本暴增40%!电车太重让全民买单,车企该改变了

路撑不住,养护成本暴增40%!电车太重让全民买单,车企该改变了

王新喜
2026-05-28 17:08:11
在埃及的7天,我终于明白了:为什么都是埃及是“地狱”

在埃及的7天,我终于明白了:为什么都是埃及是“地狱”

复转这些年
2026-05-27 16:37:32
2026-05-30 07:11:00
Adolph高端JAVA平台
Adolph高端JAVA平台
专注JAVA技术研究
27文章数 550关注度
往期回顾 全部

科技要闻

Claude Opus 4.8凌晨突发上线

头条要闻

释永信被判24年 中国佛教协会:完全是咎由自取

头条要闻

释永信被判24年 中国佛教协会:完全是咎由自取

体育要闻

即使是文班亚马,也做不到这件事

娱乐要闻

奚梦瑶何猷君将于6月在法国举行婚礼

财经要闻

近3个月跌超20% 黄金"猴市"下的众生相

汽车要闻

900V+3.2秒破百 领克10+&领克10上市16.99万元起

态度原创

艺术
家居
房产
健康
军事航空

艺术要闻

粉墙黛瓦别样美

家居要闻

云栖 舒展如流云

房产要闻

顺德澐璟「澐冠」再出圈:顶阶人群不是买房,是追加“传世资产”

尝试干细胞疗法如何避免踩坑?

军事要闻

中方公布参加香会阵容 几大议题受到关注

无障碍浏览 进入关怀版