《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目9:創(chuàng)建SpringBoot項(xiàng)目_第1頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目9:創(chuàng)建SpringBoot項(xiàng)目_第2頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目9:創(chuàng)建SpringBoot項(xiàng)目_第3頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目9:創(chuàng)建SpringBoot項(xiàng)目_第4頁(yè)
《數(shù)據(jù)采集技術(shù)(初級(jí))》實(shí)驗(yàn)手冊(cè) 項(xiàng)目9:創(chuàng)建SpringBoot項(xiàng)目_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

項(xiàng)目九:創(chuàng)建SpringBoot項(xiàng)目浪潮:2020年7月作者版本時(shí)間審核備注王健2.02020-7-13主要內(nèi)容:創(chuàng)建SpringBoot項(xiàng)目。通過(guò)多種不同的形式創(chuàng)建SpringBoot項(xiàng)目。配置SpringBoot的日志。配置logback日志系統(tǒng)。將SpringBoot項(xiàng)目發(fā)布到Linux服務(wù)器上去。安裝JDK。配置JDK,并發(fā)布SpringBoot項(xiàng)目到Linux上去。通過(guò)nohug啟動(dòng)springboot項(xiàng)目。一、創(chuàng)建SpringBoot項(xiàng)目的方法創(chuàng)建SpringBoot項(xiàng)目的方法有很多種,目前比較流行的為兩大種:在線創(chuàng)建在線通過(guò)start.spring.io創(chuàng)建SpringBoot項(xiàng)目,在創(chuàng)建完成以后,再導(dǎo)入到IDE中開發(fā)。使用IDE創(chuàng)建在IDE中直接使用SpringInit直接創(chuàng)建SpringBoot項(xiàng)目。IDE可以是STS也可以是IDEA。集成開發(fā)工具介紹開發(fā)SpringBoot項(xiàng)目,建議使用STS或IDEA。在使用之前,請(qǐng)給STS或IDEA安裝Lombok插件。安裝maven,并配置環(huán)境變量。(.m2/settings.xml配置細(xì)節(jié))Maven/gradle如果要開發(fā)任何java項(xiàng)目,Java項(xiàng)目依賴很多的其他的第三方的庫(kù)。第三方的庫(kù),你可以手工的放到項(xiàng)目中。不要。Maven-在STS、IDEA里面,都自帶了。問(wèn)題:如果使用自帶的,將會(huì)所有依賴下載到${user}/.m2/repository->30G+建議大家還要是自己安裝一個(gè)maven:1:下載M2:解壓3:配本地倉(cāng)庫(kù)到其他的目錄配置:M2_HOME=安裝目錄PATH=%M2_HOME%\bin配置倉(cāng)庫(kù):二、創(chuàng)建Springboot項(xiàng)目1、在線創(chuàng)建步1、打開start.spring.io輸入項(xiàng)目名稱,選擇版本:(對(duì)每一項(xiàng)目做細(xì)節(jié)說(shuō)明)1:maven為所使用的依賴工具。2:Java為開發(fā)語(yǔ)言。3:2.3.1為目前Release版本。4:Group為項(xiàng)目的包名。5:Artifact為項(xiàng)目的名稱。然后添加依賴:對(duì)每一個(gè)依賴做說(shuō)明:1:Lombok用于簡(jiǎn)化開發(fā)。2:bootdev為開發(fā)選項(xiàng)。3:Config用于讀取配置時(shí)的選項(xiàng)。4:Web網(wǎng)絡(luò)開發(fā)組件。5:Thymeleaf模板。6:Actuator健康檢查。7:JSR303驗(yàn)證。步2、下載并導(dǎo)入導(dǎo)入到IDE中去,如STS/Eclipse中去:選擇導(dǎo)入的項(xiàng)目類型:選擇已經(jīng)解壓好的項(xiàng)目:等待更新完成:可選的添加aliyunmaven倉(cāng)庫(kù):....</build> <repositories> <repository> <id>central</id> <url>/repository/central</url> </repository> <repository> <id>public</id> <url>/repository/public</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>central</id> <url>/repository/central</url> </pluginRepository> <pluginRepository> <id>public</id> <url>/repository/public</url> </pluginRepository> </pluginRepositories></project>步3、配置配置的內(nèi)容如下:server.port=8888=boot-demoserver.servlet.encoding.charset=UTF-8spring.messages.encoding=UTF-8spring.thymeleaf.cache=falsespring.thymeleaf.encoding=UTF-8spring.jackson.time-zone=GMT+8spring.jackson.date-format=yyyy-MM-ddHH:mm:sslogging.level.root==logs/${}.log具體含義說(shuō)明.略。步4、開發(fā)開發(fā)index.html<!DOCTYPEhtml><htmlxmlns:th=""><head><metacharset="UTF-8"><title>Inserttitlehere</title></head><body> <p>Hello這是主頁(yè)</p></body></html>配置index.html配置index.html如下:packagecn.inspur.config;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ViewControllerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{ @Override publicvoidaddViewControllers(ViewControllerRegistryregistry){ registry.addViewController("index").setViewName("index"); registry.addViewController("/").setViewName("index"); registry.addViewController("").setViewName("index"); }}啟動(dòng):訪問(wèn)測(cè)試:停止項(xiàng)目。開發(fā)HelloControllerpackagecn.inspur.api.hello.controller;importorg.springframework.stereotype.Controller;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importlombok.extern.slf4j.Slf4j;@RequestMapping("hello")@Controller@Slf4jpublicclassHelloController{ @GetMapping("hi") publicStringhi(){ ("hello..Hi.."); return"hello/hi"; }}添加超連接:<!DOCTYPEhtml><htmlxmlns:th=""><head><metacharset="UTF-8"><title>Inserttitlehere</title></head><body> <p>Hello這是主頁(yè)</p> <ahref="hello/hi">Hello/hi</a></body></html>添加hi.html頁(yè)面:<!DOCTYPEhtml><htmlxmlns:th=""><head><metacharset="UTF-8"><title>Inserttitlehere</title></head><body> <p>這是hi頁(yè)面</p></body></html>啟動(dòng)項(xiàng)目,并測(cè)試訪問(wèn):顯示數(shù)據(jù)packagecn.inspur.api.hello.vo;importlombok.Getter;importlombok.Setter;@Getter@SetterpublicclassHello{ privateStringname; privateintage; privateStringaddress; publicHello(){ } publicHello(Stringname,intage,Stringaddress){ =name; this.age=age; this.address=address; }}packagecn.inspur.api.hello.service;importjava.util.ArrayList;importjava.util.List;importjava.util.Random;importorg.springframework.stereotype.Service;importcn.inspur.api.hello.vo.Hello;@ServicepublicclassHelloService{ publicList<Hello>query(){ Randomr=newRandom(); List<Hello>list=newArrayList<>(); inta=r.nextInt(20); for(inti=0;i<a;i++){ list.add(newHello("Jack"+i,i*4,"北京"+i)); } returnlist; }}packagecn.inspur.api.hello.controller;importjava.util.List;importorg.springframework.beans.factory.annotation.Autowired;importorg.springframework.stereotype.Controller;importorg.springframework.ui.Model;importorg.springframework.web.bind.annotation.GetMapping;importorg.springframework.web.bind.annotation.RequestMapping;importcn.inspur.api.hello.service.HelloService;importcn.inspur.api.hello.vo.Hello;importlombok.extern.slf4j.Slf4j;@RequestMapping("hello")@Controller@Slf4jpublicclassHelloController{ @Autowired privateHelloServicehelloService; @GetMapping("hi") publicStringhi(Modelmodel){ ("hello..Hi.."); List<Hello>list=helloService.query(); model.addAttribute("datas",list); return"hello/hi"; }}運(yùn)行結(jié)果:步5、添加bootstrap樣式下載樣式文件添加靜態(tài)文件配置packagecn.inspur.config;importorg.springframework.context.annotation.Configuration;importorg.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;importorg.springframework.web.servlet.config.annotation.ViewControllerRegistry;importorg.springframework.web.servlet.config.annotation.WebMvcConfigurer;@ConfigurationpublicclassWebMvcConfigimplementsWebMvcConfigurer{ @Override publicvoidaddViewControllers(ViewControllerRegistryregistry){ registry.addViewController("index").setViewName("index"); registry.addViewController("/").setViewName("index"); registry.addViewController("").setViewName("index"); } @OverridepublicvoidaddResourceHandlers(ResourceHandlerRegistryregistry){registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");}}在頁(yè)面上引用<!DOCTYPEhtml><htmlxmlns:th=""><head><metacharset="UTF-8"><title>Inserttitlehere</title><linkrel="stylesheet"type="text/css" th:href="@{/static/bootstrap/css/bootstrap.min.css}"><scripttype="text/javascript"th:src="@{/static/jquery.min.js}"></script></head><body> <divclass="container"> <divclass="row"> <divclass="col-12"> <p>Hello-這是主頁(yè)</p> <ahref="hello/hi">Hello/hi</a> </div> </div> </div></body></html>查看結(jié)果步6、使用vue/前后分離技術(shù)展示數(shù)據(jù)<!DOCTYPEhtml><htmlxmlns:th=""><head><metacharset="UTF-8"><title>Inserttitlehere</title><linkrel="stylesheet"type="text/css" th:href="@{/static/bootstrap/css/bootstrap.min.css}"><scripttype="text/javascript"th:src="@{/static/jquery.min.js}"></script><scripttype="text/javascript"th:src="@{/static/layer/layer.js}"></script><scripttype="text/javascript"th:src="@{/static/vue.min.js}"></script></head><body> <divclass="container"id="app"> <h2>{{message}}</h2> <divclass="row"> <divclass="col-12"> <button@click="add"class="btnbtn-primarybtn-sm">增加</button> <buttontype="button"class="btnbtn-infobtn-sm" @click="refresh($event)">刷新</button> </div> <divclass="col-12"> <tableclass="tabletable-borded"> <thead> <tr> <th>序號(hào)</th> <th>Name</th> <th>age</th> <th>address</th> </tr> </thead> <tbodyv-if="list.length>0"> <trv-for="(h,index)inlist"> <td>{{index+1}}</td> <td>{{}}</td> <td>{{h.age}}</td> <td>{{h.address}}</td> </tr> </tbody> <tbodyv-else> <trstyle="text-align:center"> <tdcolspan="4">無(wú)數(shù)據(jù)</td> </tr> </tbody> </table> </div> </div> <divid="addDiv"style="display:none;width:400px;"> <divclass="container"> Name:<inputtype="text"name="name"v-model=""><br> Age:<inputtype="text"name="age"v-model="hello.age"><br> Address:<inputtype="text"name="address"v-model="hello.address"><br> <inputtype="button"value="保存"@click="save"> </div> </div> </div></body><scripttype="text/javascript"> $(function(){ varlayerIndex=-1; varapp=newVue({ el:"#app", data:{ message:'使用VUE顯示數(shù)據(jù)', list:[], hello:{ name:"", age:0, address:"" } }, methods:{ refresh:function(e){ load(); }, add:function(){ layerIndex=layer.open({ type:1, title:"增加", content:$('#addDiv') }); }, save:function(){ varparam=$.param(app.hello); $.post("/hello/save",param,function(resp){ app.list.push(Object.assign({},resp.data)); alert(layerIndex); layer.close(layerIndex); }); } } }); functionload(){ $.post("/hello/hi2",function(data){ app.list=data.data; },"json"); } load(); });</script></html>使用STS創(chuàng)建SpringBoot項(xiàng)目選擇創(chuàng)建SpringStarterProject:輸入項(xiàng)目的GAV:選擇依賴的版本:然后就可以和上一個(gè)項(xiàng)目一樣,進(jìn)入開發(fā)了:使用IDEA創(chuàng)建SpringBoot項(xiàng)目選擇創(chuàng)建Spring項(xiàng)目:輸入項(xiàng)目的GAV:選擇項(xiàng)目的依賴:發(fā)布項(xiàng)目在項(xiàng)目開發(fā)完成以后,就需要將項(xiàng)目發(fā)布到服務(wù)器上去。一般情況下,選擇的服務(wù)器為L(zhǎng)inux.以此,我選擇CentOS7做為服務(wù)器。可選的Linux服務(wù)器為:1:本地安裝虛擬機(jī)。2:購(gòu)買華為云、阿里云等做為服務(wù)器。以下我以本地虛擬機(jī)為環(huán)境演示。步1、啟動(dòng)Linux配置靜態(tài)Ip地址。建議創(chuàng)建一個(gè)非root用戶。關(guān)閉防火墻。步2、安裝JDK安裝JDk配置環(huán)境變量。步3、打包項(xiàng)目使用package命令,打包SpringBoot項(xiàng)目,將會(huì)得到一個(gè)jar包。步4、上傳jar包并啟動(dòng)jar包上傳Jar包,并使得nohupjava-jar...啟動(dòng)這個(gè)java程序。步5、訪問(wèn)并測(cè)試(略)三、項(xiàng)目日志1、日志簡(jiǎn)介在項(xiàng)目的開發(fā)中,日志是必不可少的一個(gè)記錄事件的組件,所以也會(huì)相應(yīng)的在項(xiàng)目中實(shí)現(xiàn)和構(gòu)建我們所需要的日志框架。而市面上常見的日志框架有很多,比如:JCL、SLF4J、Jboss-logging、jUL、log4j、log4j2、logback等等,我們?cè)撊绾芜x擇呢?通常情況下,日志是由一個(gè)抽象層+實(shí)現(xiàn)層的組合來(lái)搭建的。日志-抽象層日志-實(shí)現(xiàn)層JCL、SLF4J、jboss-logging@Slf4jjul、log4j、log4j2、logback而SpringBoot機(jī)智的選擇了SLF4J+Logback的組合,這個(gè)組合是當(dāng)下比較合適的一組(log4j2其實(shí)很厲害,但是太厲害導(dǎo)致我駕馭不了~)以下圖示,說(shuō)明了所有springBoot項(xiàng)目,都依賴的spring-boot-starter-logging,而spring-boot-starter-logging又依賴于logback和log4j:日志的級(jí)別日志的級(jí)別分為:debug,info,warn,error,fatal。另有兩個(gè)開關(guān):on,off。日志級(jí)別是向上兼容的。即如果設(shè)置了日志的級(jí)別為:info,則只會(huì)輸出info及以上的日志信息。debug的日志信息,將不會(huì)再輸出。測(cè)試日志:packagecn.inspur;importmons.logging.Log;importmons.logging.LogFactory;importorg.junit.jupiter.api.Test;importorg.springframework.boot.test.context.SpringBootTest;@SpringBootTestpublicclassDemo01{ Loglog=LogFactory.getLog(Demo01.class); @Test publicvoidtest1(){ log.debug("Debug...."); ("Info..."); log.warn("Warning..."); log.error("Error..."); log.fatal("Fatal..."); }}可以在perties中配置日志的級(jí)別:如,我們將日志的級(jí)別設(shè)置為info:logging.level.root=INFO則,debug級(jí)別的日志將不會(huì)輸出:以下是輸出的日志,你不會(huì)發(fā)出有debug的信息輸出:2020-07-1915:28:49.740INFO13068---[main]cn.inspur.Demo01:Info...2020-07-1915:28:49.740WARN13068---[main]cn.inspur.Demo01:Warning...2020-07-1915:28:49.740ERROR13068---[main]cn.inspur.Demo01:Error...2020-07-1915:28:49.740ERROR13068---[main]cn.inspur.Demo01:Fatal...設(shè)置不同的類,輸出不同的日志級(jí)別也可以設(shè)置不同的包,輸出不同的日志級(jí)別。logging.level.root=INFO#這兒是設(shè)置根日志級(jí)別.inspur=DEBUG#這兒是設(shè)置cn.inspur包中的類,輸出的日志級(jí)別設(shè)置日志輸出的文件#日志的路徑=./logs/ttt-2.log5、設(shè)置日志的格式一般情況下,不需要設(shè)置日志的格式。默認(rèn)SpringBoot已經(jīng)為我們?cè)O(shè)置好的常用的格式。如果不符合要求,可以自己來(lái)設(shè)置格式:#輸出到控制臺(tái)的格式logging.pattern.console=%d{yyyy-MM-dd}[%thread]%-5level%logger{50}-%msg%n#輸出到文件中的格式logging.pattern.file=%d{yyyy-MM-ddHH:mm:ss}[%thread]%-5level%logger{50}-%msg%n默認(rèn)的格式為:Appenderpatternforoutputtotheconsole.SupportedonlywiththedefaultLogbacksetup.Default:%clr(%d{${LOG_DATEFORMAT_PATTERN:-yyyy-MM-ddHH:mm:ss.SSS}}){faint}%clr(${LOG_LEVEL_PATTERN:-%5p})%clr(${PID:-}){magenta}%clr(---){faint}%clr([%15.15t]){faint}%clr(%-40.40logger{39}){cyan}%clr(:){faint}%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}6、使用自己的日志配置文件如果不想在perites中配置日志信息,也可以創(chuàng)建自己的配置文件。如果想用自己的log配置,不用系統(tǒng)默認(rèn)的,那么只需要按照官方要求,將該配置文件放在所需類的目錄下即可,也可以在resource中配置全局的。步1、刪除在perties文件中的關(guān)于logging的配置:步2、在classpath下添加logback.xml文件以下添加logback.xml文件:內(nèi)容如下:<?xmlversion="1.0"encoding="UTF-8"?><configurationdebug="false"scan="false" scanPeriod="30second"> <!--按日期區(qū)分滾動(dòng)日志--> <appendername="appender1" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>D:/logs/logback.log</file> <encoder> <pattern>%d%level%class[%thread]%m%n</pattern> </encoder> <filterclass="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <appendername="appender2" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d%level%class[%thread]%m%n</pattern> </encoder> <filterclass="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> </appender> <appendername="ASYNC-INFO"class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>512</queueSize> <appender-refref="appender1"></appender-ref> <includeCallerData>true</includeCallerData> </appender> <rootlevel="debug"> <!--同步日志--> <appender-refref="appender1"></appender-ref> <appender-refref="appender2"></appender-ref> <!--異步日志--> <!--<appender-refref="ASYNC-INFO"></appender-ref>--> </root></configuration>上面的配置中,分別配置了輸出數(shù)據(jù)到文件和數(shù)據(jù)數(shù)據(jù)到控制臺(tái)。查看日志輸出文件和控制臺(tái)輸出即可。7、分別輸出日志到不同的文件中在logback或是log4j中,都可以控制不同包的日志,輸出到不同的文件中。在logback中,可以通過(guò)添加<logger../>的方式控制不同包中的類輸出日志到不同的文件中:以下是完整的配置文件,其中有底色的為新添加的內(nèi)容:<?xmlversion="1.0"encoding="UTF-8"?><configurationdebug="false"scan="false" scanPeriod="30second"> <!--按日期區(qū)分滾動(dòng)日志--> <appendername="appender1" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>D:/logs/logback.log</file> <encoder> <pattern>%d%level%class[%thread]%m%n</pattern> </encoder> <filterclass="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logback.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <appendername="appender3" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>D:/logs/logback1.log</file> <encoder> <pattern>%d%level%class[%thread]%m%n</pattern> </encoder> <filterclass="ch.qos.logback.classic.filter.ThresholdFilter"> <level>DEBUG</level> </filter> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>logback1.%d{yyyy-MM-dd}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> </appender> <appendername="console" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d%level%class[%thread]%m%n</pattern> </encoder> <filterclass="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> </appender> <appendername="ASYNC-INFO"class="ch.qos.logback.classic.AsyncAppender"> <discardingThreshold>0</discardingThreshold> <queueSize>512</queueSize> <appender-refref="appender1"></appender-ref> <includeCallerData>true</includeCallerData> </appender> <rootlevel="debug"> <!--同步日志--> <appender-refref="appender1"></appender-ref> <appender-refref="console"></appender-ref> <!--異步日志--> <!--<appender-refref="ASYNC-INFO"></appender-ref>--> </root> <!--指定不同的包輸出日志到不同的文件中additivity用于控制是否重復(fù)輸出--> <loggername="cn.inspur"level="debug"additivity=false> <appender-refref="appender3"></appender-ref> <appender-refref="console"></appender-ref> </logger> </configuration>三、SpringCloud簡(jiǎn)介SpringCloud用于創(chuàng)建微服務(wù)分布式項(xiàng)目,SpringCloud的基礎(chǔ)是SpringBoot。在分布式的系統(tǒng)中,日志分布在多臺(tái)不同的主機(jī)上,所以有必要將所有主機(jī)上的日志收集到一個(gè)日志中心如ES或保存到同一個(gè)MySql數(shù)據(jù)庫(kù)中。以下我們將創(chuàng)建一個(gè)SpringBoot項(xiàng)目并注冊(cè)到SpringCloud注冊(cè)中心。這兒的注冊(cè)中心,我們使用Eureka(2018年已經(jīng)閉源,但目前仍然在不斷的發(fā)展)。創(chuàng)建注冊(cè)中心項(xiàng)目步1、創(chuàng)建EurekaServer輸入項(xiàng)目的名稱:選擇依賴,只選擇Eureka-Server即可:步2、添加EurekaServer注解packagecn.inspur;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importflix.eureka.server.EnableEurekaServer;@EnableEurekaServer@SpringBootApplicationpublicclassCloudServerApplication{ publicstaticvoidmain(String[]args){ SpringApplication.run(CloudServerApplication.class,args); }}步3、修改perties配置文件如下=cloud-serverserver.port=8761#注冊(cè)自我發(fā)現(xiàn)默認(rèn)=trueeureka.server.enable-self-preservation=true#服務(wù)注冊(cè)地址,根據(jù)具體環(huán)境,修改指定文件中的配置eureka.instance.hostname=localhost#是否在狀態(tài)欄顯示IP地址eureka.instance.prefer-ip-address=true#當(dāng)前程序?yàn)榭蛻魴C(jī),默認(rèn)為trueeureka.client.enabled=true#是否將自己注冊(cè)到其他eureka服務(wù)器eureka.client.register-with-eureka=false#是否獲取自己注冊(cè)的信息,集群時(shí)需要eureka.client.fetch-registry=false#默認(rèn)注冊(cè)地址eureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${server.port}/eureka/#可以覆蓋前面的定義spring.cloud.config.allow-override=truespring.main.allow-bean-definition-overriding=true#日志配置logging.level.root=INFO.ytn=DEBUG=logs/${}.log步4、啟動(dòng)創(chuàng)建SpringCloud項(xiàng)目創(chuàng)建SpringCloud項(xiàng)目,并注冊(cè)到注冊(cè)中心。步1、輸入項(xiàng)目名稱名稱名稱為:cloud-demo包名:cn.inspur步2、選擇依賴步3、修改配置文件修改perties配置文件,配置本springcloud項(xiàng)目需要注冊(cè)到EurekaServer注冊(cè)中心:=cloud-demoserver.port=8002files.active=dev#EurekaClientconfigurationeureka.instance.hostname=localhosteureka.client.eureka-server-port=8761eureka.client.enabled=trueeureka.client.service-url.defaultZone=http://${eureka.instance.hostname}:${eureka.client.eureka-server-port}/eureka/eureka.instance.prefer-ip-address=true#mvcconfigserver.servlet.encoding.enabled=trueserver.servlet.encoding.charset=UTF-8server.servlet.encoding.force=truespring.messages.encoding=UTF-8spring.mvc.format.date=yyyy-MM-ddspring.jackson.time-zone=GMT+8spring.jackson.date-format=yyyy-MM-ddHH:mm:ss#default8KB,setgetparameterto20480bytesserver.max-http-header-size=20480#Loggingconfiglogging.level.root=INFO.inspur=DEBUG=logs/${}.log#actuator/info信息=${}=Inspurinfo.build.artifactId=cn.inspurinfo.build.version=1.0步4、添加EurekaClient的注解在啟動(dòng)類中,添加EurekaClient的注解如下:packagecn.inspur;importorg.springframework.boot.SpringApplication;importorg.springframework.boot.autoconfigure.SpringBootApplication;importflix.eureka.EnableEurekaClient;@EnableEurekaClient@SpringBootApplicationpublicclassCloudDemoApplication{ publicstaticvoidmain(String[]args){ SpringApplication.run(CloudDemoApplication.class,args); }}步5、啟動(dòng)項(xiàng)目先啟動(dòng)eurekaserver,再啟動(dòng)cloud-demo。然后查看eurakaserver上的信息如下:可見到,服務(wù)已經(jīng)注解到EurekaServer注冊(cè)中心:步6、開發(fā)一個(gè)測(cè)試類開發(fā)一個(gè)測(cè)試類,用于訪問(wèn)測(cè)試:packagecn.inspur.api.demo.controller;importjava.time.LocalDateTime;importorg.springframework.beans.factory.annotation.Value;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("demo")publicclassDemoController{ @Value("${server.port}") privateStringport; @RequestMapping("hello") publicStringhello(){ return"HelloCurrentTimei

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論