日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot Bean配置

發布時間:2024/4/13 javascript 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot Bean配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在使用Spring進行開發配置的時候有兩類選擇:*.xml配置文件、配置的Bean(@Configure),于是在Spring開發 的世界里面,為了繼續崇尚所謂的"零配置",提供有一種簡單的支持,也就是說如果現在你真的有配置需要通過 *.xml文件編寫,但是又不想出現配置文件的話.前提:該配置程序的Bean所在的包必須是程序啟動類所在包的子包之中,這樣才可以自動掃描到.1、下面準備一個程序,建立一個業務接口,而后定義這個接口的子類:package com.microboot.service;public interface IMessageService {public String info(); }package com.microboot.service.impl;import org.springframework.stereotype.Service;import com.microboot.service.IMessageService;@Service public class IMessageServiceImpl implements IMessageService {@Overridepublic String info() {return "www.baidu.com";}} 2、建立控制層類,進行對象的配置注入.package com.microboot.controller;import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;import com.microboot.service.IMessageService; import com.microboot.util.controller.AbstractBaseController;@RestController public class MessageController extends AbstractBaseController{@Resourceprivate IMessageService messageService;@RequestMapping(value="/",method=RequestMethod.GET)public String index() {return this.messageService.info();}} 3、建立一個測試類package com.microboot.test;import javax.annotation.Resource;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 com.microboot.StartSpringBootMain; import com.microboot.controller.MessageController;@SpringBootTest(classes=StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestMessageController {@Resourceprivate MessageController messageController;@Testpublic void testIndex() {System.out.println(this.messageController.index());} }www.baidu.com 2、下面就利用以上的程序來了解一下什么叫做Bean配置,為了清楚的發現Bean配置的特點刪除業務層實現子類 中的注解@Service,也就是說這個對象現在無法直接被注入,于是下面在啟動類所在包的子包里面建立一個配置 程序類:ServiceConfig.package com.microboot.service.impl;import com.microboot.service.IMessageService;public class IMessageServiceImpl implements IMessageService {@Overridepublic String info() {return "www.baidu.com";}}package com.microboot.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import com.microboot.service.impl.IMessageServiceImpl;// 此處為配置項 @Configuration public class ServiceConfig {// 方法名隨便寫// 此處返回的是一個Spring的配置Bean,與xml的"<bean>"等價@Beanpublic IMessageServiceImpl getMessageService() {return new IMessageServiceImpl();} }此時采用了自動掃描Bean的模式來進行了相關對象的配置.package com.microboot.test;import javax.annotation.Resource;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 com.microboot.StartSpringBootMain; import com.microboot.controller.MessageController;@SpringBootTest(classes=StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestMessageController {@Resourceprivate MessageController messageController;@Testpublic void testIndex() {System.out.println(this.messageController.index());} } 3、SSM或SSH開發框架出現的時間比較長,現在遷移到SpringBoot之中,那么如果說現在你已經有一個非常完善 的xml配置文件出現了,那么難道還要講整個的xml配置文件轉換為Bean配置嗎? 為了防止這類情況的出現,Spring也支持有配置文件的讀取,例如:下面創建一個spring-common.xml配置文件:package com.microboot.config;import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;import com.microboot.service.impl.IMessageServiceImpl;// 此處為配置項 @Configuration public class ServiceConfig {// 方法名隨便寫// 此處返回的是一個Spring的配置Bean,與xml的"<bean>"等價@Bean(name="configService")public IMessageServiceImpl getMessageService() {return new IMessageServiceImpl();} }<beans xmlns="http://www.springframework.org/schema/beans"xmlns:context="http://www.springframework.org/schema/context"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:mvc="http://www.springframework.org/schema/mvc"xmlns:p="http://www.springframework.org/schema/p"xmlns:jee="http://www.springframework.org/schema/jee"xmlns:tx="http://www.springframework.org/schema/tx"xmlns:aop="http://www.springframework.org/schema/aop"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsdhttp://www.springframework.org/schema/mvchttp://www.springframework.org/schema/mvc/spring-mvc.xsdhttp://www.springframework.org/schema/jeehttp://www.springframework.org/schema/jee/spring-jee.xsdhttp://www.springframework.org/schema/txhttp://www.springframework.org/schema/tx/spring-tx.xsdhttp://www.springframework.org/schema/aophttp://www.springframework.org/schema/aop/spring-aop.xsd"><bean id="messageService" class="com.microboot.service.impl.IMessageServiceImpl"> </bean> </beans> 4、隨后可以在程序啟動類上使用xml進行配置加載 package com.microboot;import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.ImportResource;//@EnableAutoConfiguration // 定義一個掃描路徑 //@ComponentScan("com.microboot") // 啟動SpringBoot程序,而后自帶子包掃描 @SpringBootApplication @ImportResource(locations= {"classpath:spring-common.xml"}) public class StartSpringBootMain {public static void main(String[] args) {SpringApplication.run(StartSpringBootMain.class, args);} }package com.microboot.test;import javax.annotation.Resource;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 com.microboot.StartSpringBootMain; import com.microboot.controller.MessageController;@SpringBootTest(classes=StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestMessageController {@Resourceprivate MessageController messageController;@Testpublic void testIndex() {System.out.println(this.messageController.index());} } 如果此時所配置的兩個bean都沒有名字那么在進行注入的時候一定會出現重復的錯誤,而這個錯誤在新版本 里面將其做了完善,不過如果要想在開發之中準確的注入指定的對象,則需要使用名字完成:package com.microboot.controller;import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController;import com.microboot.service.IMessageService; import com.microboot.util.controller.AbstractBaseController;@RestController public class MessageController extends AbstractBaseController{@Resource(name="messageService")private IMessageService messageService;@RequestMapping(value="/",method=RequestMethod.GET)public String index() {return this.messageService.info();}}這樣才可以準確的找到所需要的注入的實體對象:package com.microboot.test;import javax.annotation.Resource;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 com.microboot.StartSpringBootMain; import com.microboot.controller.MessageController;@SpringBootTest(classes=StartSpringBootMain.class) @RunWith(SpringJUnit4ClassRunner.class) @WebAppConfiguration public class TestMessageController {@Resourceprivate MessageController messageController;@Testpublic void testIndex() {System.out.println(this.messageController.index());} }

?

總結

以上是生活随笔為你收集整理的SpringBoot Bean配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。