公司動态

了(le/liǎo)解最新公司動态及行業資訊

當前位置:首頁>新聞中心>公司動态
全部 471 公司動态 136 行業動态 173

微信小程序開發「前端 後端(Java)」附完整源碼(java開發)微信小程序前端教程,

時(shí)間:2025-03-30   訪問量:1005

一(yī / yì /yí)、前言

現在(zài)微信小程序越來(lái)越火了(le/liǎo),相信不(bù)少人(rén)都通過各種途徑學習過微信小程序或者嘗試開發,作者就(jiù)是(shì)曾經由于(yú)興趣了(le/liǎo)解開發過微信小程序,所以(yǐ)現在(zài)用這(zhè)篇博客記錄我之(zhī)前開發的(de)一(yī / yì /yí)些經驗和(hé / huò)一(yī / yì /yí)些心得吧。

二、主要(yào / yāo)内容

springboot後端架構構建小程序項目構建小程序api調用後台resetful接口編寫小程序調用後台接口免費的(de)https申請linux下部署上(shàng)線

三、微信小程序項目構建

這(zhè)些基礎的(de)東西我就(jiù)不(bù)過多介紹,大(dà)家在(zài)剛開始開發的(de)時(shí)候一(yī / yì /yí)般都沒有自己的(de)服務器及域名,所以(yǐ)大(dà)家在(zài)本地(dì / de)編寫的(de)時(shí)候,在(zài)“詳細”下的(de)“項目設置”裏面将“不(bù)校驗域名安全性”勾選。

至于(yú)微信小程序的(de)組件,即前端頁面的(de)開發希望大(dà)家耐住寂寞認真在(zài)微信開發平台上(shàng)。

組件:

https://developers.weixin.qq.com/miniprogram/dev/component/

api:

https://developers.weixin.qq.com/miniprogram/dev/api/

四、後端詳解

我在(zài)後端編寫主要(yào / yāo)是(shì)用java,當然對其他(tā)開發語言熟悉的(de)也(yě)可以(yǐ)使用其他(tā)語言開發後端。現在(zài)我就(jiù)java編寫後端api的(de)講解。主要(yào / yāo)框架springboot,開發工具myeclipse,服務器阿裏雲服務器。

創建一(yī / yì /yí)個(gè)maven項目,導入相關依賴:

pom.xml依賴

org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-freemarker org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.apache.tomcat.embed tomcat-embed-jasper

在(zài)配置文件src/main/resources/下創建application.properties文件可以(yǐ)修改一(yī / yì /yí)些配置參數等。

#jsp支持 spring.mvc.view.suffix=.jsp spring.mvc.view.prefix=/WEB-INF/jsp/ #this is set port #server.port=80 server.port=443 #添加ssl證書 #ssl證書文件名 server.ssl.key-store=classpath:xxxxxxx.pfx server.ssl.key-store-password=xxxxxxxx server.ssl.keyStoreType=xxxxxxxx

在(zài)實際項目中可能涉及數據庫,還要(yào / yāo)整合mybatis,在(zài)文章中,我僅僅做測試就(jiù)不(bù)做使用數據庫的(de)測試。

首先創建springboot的(de)入口程序:app.class下面貼上(shàng)代碼:

@ComponentScan(basePackages= "com.bin")//添加掃包@ComponentScan(basePackages= "") @EnableAutoConfiguration public class App{ //啓動springboot public static void main(String[] args) { SpringApplication.run(App.class, args); } }

啓動項目時(shí)直接右擊run即可。

在(zài)寫一(yī / yì /yí)個(gè)測試的(de)controller進行微信小程序與java後端實現通信,controller代碼如下:

@RestController @SpringBootApplication public class ControllerText { @RequestMapping("getUser") public Map getUser(){ System.out.println("微信小程序正在(zài)調用。。。"); Map map = new HashMap(); List list = new ArrayList(); list.add("zhangsan"); list.add("lisi"); list.add("wanger"); list.add("mazi"); map.put("list",list); System.out.println("微信小程序調用完成。。。"); return map; } @RequestMapping("getWord") public Map getText(String word){ Map map = new HashMap(); String message = "我能力有限,不(bù)要(yào / yāo)爲(wéi / wèi)難我"; if ("後來(lái)".equals(word)) { message="正在(zài)熱映的(de)後來(lái)的(de)我們是(shì)劉若英的(de)處女作。"; }else if("微信小程序".equals(word)){ message= "想獲取更多微信小程序相關知識,請更多的(de)閱讀微信官方文檔,還有其他(tā)更多微信開發相關的(de)内容,學無止境。"; }else if("西安工業大(dà)學".equals(word)){ message="西安工業大(dà)學(Xian Technological University)簡稱”西安工大(dà)“,位于(yú)世界曆史名城古都西安,是(shì)中國(guó)西北地(dì / de)區唯一(yī / yì /yí)一(yī / yì /yí)所以(yǐ)兵工爲(wéi / wèi)特色,以(yǐ)工爲(wéi / wèi)主,理、文、經、管、法協調發展的(de)教學研究型大(dà)學。原中華人(rén)民共和(hé / huò)國(guó)兵器工業部直屬的(de)七所本科院校之(zhī)一(yī / yì /yí)(“兵工七子(zǐ)”),陝西省重點建設的(de)高水平教學研究型大(dà)學、陝西省人(rén)民政府與中國(guó)兵器工業集團、國(guó)防科技工業局共建高校、教育部“卓越工程師教育培養計劃”試點高校、陝西省大(dà)學生創新能力培養綜合改革試點學校。國(guó)家二級保密資格單位,是(shì)一(yī / yì /yí)所以(yǐ)\"軍民結合,寓軍于(yú)民\"的(de)國(guó)防科研高校。"; } map.put("message", message); return map; } @RequestMapping("") public String getText(){ return "hello world"; } }

至此簡易的(de)後端框架及測試基本完成。

說(shuō)明:@RestController與@Controller注解的(de)區别@RestController相當于(yú)兩個(gè)注解,它能實現将後端得到(dào)的(de)數據在(zài)前端頁面(網頁)中以(yǐ)json串的(de)形式傳遞。而(ér)微信小程序與後台之(zhī)間的(de)數據傳遞就(jiù)是(shì)以(yǐ)json報文的(de)形式傳遞。所以(yǐ)這(zhè)就(jiù)是(shì)選擇springboot框架開發小程序後端的(de)主要(yào / yāo)原因之(zhī)一(yī / yì /yí)。可以(yǐ)方面我們進行小程序的(de)後端開發。

五、小程序發起網絡請求

在(zài)完成了(le/liǎo)小程序的(de)後端開發,下面進行小程序端發起網絡請求。

下面以(yǐ)一(yī / yì /yí)個(gè)簡單的(de)按鈕請求數據爲(wéi / wèi)例:

wxml文件

點擊發起請求 姓名:{{item}}

js文件

/** * 頁面的(de)初始數據 */ data: { list: , word: , message: }, houduanButton1: function () { var that = this; wx.request({ url: http://localhost:443/getUser, method: GET, header: { content-type: application/json // 默認值 }, success: function (res) { console.log(res.data)//打印到(dào)控制台 var list = res.data.list; if (list == null) { var toastText = 數據獲取失敗; wx.showToast({ title: toastText, icon: , duration: 2000 }); } else { that.setData({ list: list }) } } }) }

主要(yào / yāo)調用的(de)api就(jiù)是(shì)wx.request,想知道(dào)将詳細的(de)介紹大(dà)家可以(yǐ)去微信公衆平台(

https://developers.weixin.qq.com/miniprogram/dev/api/)。

接下來(lái)以(yǐ)搜索類型的(de)請求爲(wéi / wèi)例:

wxml文件:

查詢 {{message}}

js文件:變量的(de)定義見上(shàng)一(yī / yì /yí)個(gè)js文件

//獲取輸入框的(de)内容 houduanTab_input: function (e) { this.setData({ word: e.detail.value }) }, // houduanButton2的(de)網絡請求 houduanButton2: function () { var that = this; wx.request({ url: http://localhost:443/getWord, data:{ word: that.data.word }, method: GET, header: { content-type: application/json // 默認值 }, success: function (res) { console.log(res.data)//打印到(dào)控制台 var message = res.data.message; if (message == null) { var toastText = 數據獲取失敗; wx.showToast({ title: toastText, icon: , duration: 2000 }); } else { that.setData({ message: message }) } } }) }

至此已經完成了(le/liǎo)簡易的(de)微信小程序端與java後端進行通信。

現在(zài)可以(yǐ)在(zài)啓動後端項目在(zài)微信開發工具上(shàng)進行測試。

演示效果:

所以(yǐ)至此已經完成了(le/liǎo)小程序的(de)前後端通信。

六、ps申請

其實也(yě)不(bù)算什麽申請,在(zài)購買域名之(zhī)後可以(yǐ)申請免費的(de)ssl證書,在(zài)前面的(de)配置文件application.properties中有證書的(de)配置,将證書的(de)pfx文件直接添加到(dào)後端項目下即可。

七、購買服務器部署後端api代碼

對于(yú)springboot項目,本人(rén)建議打jar,直接在(zài)服務器上(shàng)部署即可,在(zài)服務器上(shàng)隻需要(yào / yāo)安裝對應版本的(de)jdk即可。項目部署命令:

我購買的(de)是(shì)阿裏雲的(de)輕量級應用服務器部署的(de)。比較劃算吧。

運行命令: nohup java -jar helloworld.jar &

nohup的(de)意思不(bù)挂服務,常駐的(de)意思,除非雲服務器重啓,那就(jiù)沒法了(le/liǎo);最後一(yī / yì /yí)個(gè)&表示執行命令後要(yào / yāo)生成日志文件nohup.out,當然還可以(yǐ)使用java -jar helloworld.jar。

Redis字符串的(de)實現

Redis雖然是(shì)用C語言寫的(de),但卻沒有直接用C語言的(de)字符串,而(ér)是(shì)自己實現了(le/liǎo)一(yī / yì /yí)套字符串。目的(de)就(jiù)是(shì)爲(wéi / wèi)了(le/liǎo)提升速度,提升性能,可以(yǐ)看出(chū)Redis爲(wéi / wèi)了(le/liǎo)高性能也(yě)是(shì)煞費苦心。

Redis構建了(le/liǎo)一(yī / yì /yí)個(gè)叫做簡單動态字符串(Simple Dynamic String),簡稱SDS

1.SDS 代碼結構

struct sdshdr{ // 記錄已使用長度 int len; // 記錄空閑未使用的(de)長度 int free; // 字符數組 char[] buf; };

SDS ?什麽鬼?可能對此陌生的(de)朋友對這(zhè)個(gè)名稱有疑惑。隻是(shì)個(gè)名詞而(ér)已不(bù)必在(zài)意,我們要(yào / yāo)重點欣賞借鑒Redis的(de)設計思路。下面畫個(gè)圖來(lái)說(shuō)明,一(yī / yì /yí)目了(le/liǎo)然。

Redis的(de)字符串也(yě)會遵守C語言的(de)字符串的(de)實現規則,即最後一(yī / yì /yí)個(gè)字符爲(wéi / wèi)空字符。然而(ér)這(zhè)個(gè)空字符不(bù)會被計算在(zài)len裏頭。

2.SDS 動态擴展特點

SDS的(de)最厲害最奇妙之(zhī)處在(zài)于(yú)它的(de)Dynamic。動态變化長度。舉個(gè)例子(zǐ)

如上(shàng)圖所示剛開始s1 隻有5個(gè)空閑位子(zǐ),後面需要(yào / yāo)追加 world 6個(gè)字符,很明顯是(shì)不(bù)夠的(de)。那咋辦?Redis會做以(yǐ)下三個(gè)操作:

計算出(chū)大(dà)小是(shì)否足夠開辟空間至滿足所需大(dà)小開辟與已使用大(dà)小len相同長度的(de)空閑free空間(如果len < 1m1mfreelen>= 1M)

看到(dào)這(zhè)兒爲(wéi / wèi)止有沒有朋友覺得這(zhè)個(gè)實現跟Java的(de)列表List實現有點類似呢?看完後面的(de)會覺得更像了(le/liǎo)。Spring面試題分享

概述

對于(yú) Spring和(hé / huò) SpringBoot到(dào)底有什麽區别,我聽到(dào)了(le/liǎo)很多答案,剛開始邁入學習 SpringBoot的(de)我當時(shí)也(yě)是(shì)一(yī / yì /yí)頭霧水,随着經驗的(de)積累、我慢慢理解了(le/liǎo)這(zhè)兩個(gè)框架到(dào)底有什麽區别,相信對于(yú)用了(le/liǎo) SpringBoot很久的(de)同學來(lái)說(shuō),還不(bù)是(shì)很理解 SpringBoot到(dào)底和(hé / huò) Spring有什麽區别,看完文章中的(de)比較,或許你有了(le/liǎo)不(bù)同的(de)答案和(hé / huò)看法!

什麽是(shì)Spring

作爲(wéi / wèi) Java開發人(rén)員,大(dà)家都 Spring都不(bù)陌生,簡而(ér)言之(zhī), Spring框架爲(wéi / wèi)開發 Java應用程序提供了(le/liǎo)全面的(de)基礎架構支持。它包含一(yī / yì /yí)些很好的(de)功能,如依賴注入和(hé / huò)開箱即用的(de)模塊,如:

SpringJDBC、SpringMVC、SpringSecurity、SpringAOP、SpringORM、SpringTest,這(zhè)些模塊縮短應用程序的(de)開發時(shí)間,提高了(le/liǎo)應用開發的(de)效率例如,在(zài) JavaWeb開發的(de)早期階段,我們需要(yào / yāo)編寫大(dà)量的(de)代碼來(lái)将記錄插入到(dào)數據庫中。但是(shì)通過使用 SpringJDBC模塊的(de) JDBCTemplate,我們可以(yǐ)将操作簡化爲(wéi / wèi)幾行代碼。

什麽是(shì)Spring Boot

SpringBoot基本上(shàng)是(shì) Spring框架的(de)擴展,它消除了(le/liǎo)設置 Spring應用程序所需的(de) XML配置,爲(wéi / wèi)更快,更高效的(de)開發生态系統鋪平了(le/liǎo)道(dào)路。

SpringBoot中的(de)一(yī / yì /yí)些特征:

1、創建獨立的(de) Spring

應用。

2、嵌入式 TomcatJettyUndertow

容器(無需部署war文件)。

3、提供的(de) starters

簡化構建配置

4、盡可能自動配置 spring

應用。

5、

提供生産指标,例如指标、健壯檢查和(hé / huò)外部化配置

6、完全沒有代碼生成和(hé / huò) XML配置要(yào / yāo)求

從配置分析

Maven依賴

首先,讓我們看一(yī / yì /yí)下使用Spring創建Web應用程序所需的(de)最小依賴項

org.springframework spring-web 5.1.0.RELEASE org.springframework spring-webmvc 5.1.0.RELEASE

與Spring不(bù)同,Spring Boot隻需要(yào / yāo)一(yī / yì /yí)個(gè)依賴項來(lái)啓動和(hé / huò)運行Web應用程序:

org.springframework.boot spring-boot-starter-web 2.0.6.RELEASE

在(zài)進行構建期間,所有其他(tā)依賴項将自動添加到(dào)項目中。

另一(yī / yì /yí)個(gè)很好的(de)例子(zǐ)就(jiù)是(shì)測試庫。我們通常使用 SpringTestJUnitHamcrest和(hé / huò) Mockito庫。在(zài) Spring項目中,我們應該将所有這(zhè)些庫添加爲(wéi / wèi)依賴項。但是(shì)在(zài) SpringBoot中,我們隻需要(yào / yāo)添加 spring-boot-starter-test依賴項來(lái)自動包含這(zhè)些庫。

Spring Boot爲(wéi / wèi)不(bù)同的(de)Spring模塊提供了(le/liǎo)許多依賴項。一(yī / yì /yí)些最常用的(de)是(shì):

spring-boot-starter-data-jpaspring-boot-starter-securityspring-boot-starter-testspring-boot-starter-webspring-boot-starter-thymeleaf

有關 starter的(de)完整列表,請查看Spring文檔。

MVC配置

讓我們來(lái)看一(yī / yì /yí)下 Spring和(hé / huò) SpringBoot創建 JSPWeb應用程序所需的(de)配置。

Spring需要(yào / yāo)定義調度程序 servlet,映射和(hé / huò)其他(tā)支持配置。我們可以(yǐ)使用 web.xml 文件或 Initializer類來(lái)完成此操作:

public class MyWebAppInitializer implements WebApplicationInitializer { @Override public void onStartup(ServletContext container) { AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext(); context.setConfigLocation("com.pingfangushi"); container.addListener(new ContextLoaderListener(context)); ServletRegistration.Dynamic dispatcher = container .addServlet("dispatcher", new DispatcherServlet(context)); dispatcher.setLoadOnStartup(1); dispatcher.addMapping("/"); } }

還需要(yào / yāo)将 @EnableWebMvc注釋添加到(dào) @Configuration類,并定義一(yī / yì /yí)個(gè)視圖解析器來(lái)解析從控制器返回的(de)視圖:

@EnableWebMvc @Configuration public class ClientWebConfig implements WebMvcConfigurer { @Bean public ViewResolver viewResolver() { InternalResourceViewResolver bean = new InternalResourceViewResolver(); bean.setViewClass(JstlView.class); bean.setPrefix("/WEB-INF/view/"); bean.setSuffix(".jsp"); return bean; } }

再來(lái)看 SpringBoot一(yī / yì /yí)旦我們添加了(le/liǎo) Web啓動程序, SpringBoot隻需要(yào / yāo)在(zài) application配置文件中配置幾個(gè)屬性來(lái)完成如上(shàng)操作:

spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp

上(shàng)面的(de)所有Spring配置都是(shì)通過一(yī / yì /yí)個(gè)名爲(wéi / wèi)auto-configuration的(de)過程添加 Bootweb starter來(lái)自動包含的(de)。

這(zhè)意味着 SpringBoot将查看應用程序中存在(zài)的(de)依賴項,屬性和(hé / huò) bean,并根據這(zhè)些依賴項,對屬性和(hé / huò) bean進行配置。當然,如果我們想要(yào / yāo)添加自己的(de)自定義配置,那麽 SpringBoot自動配置将會退回。

配置模闆引擎

現在(zài)我們來(lái)看下如何在(zài)Spring和(hé / huò)Spring Boot中配置Thymeleaf模闆引擎。

在(zài) Spring中,我們需要(yào / yāo)爲(wéi / wèi)視圖解析器添加 thymeleaf-spring5依賴項和(hé / huò)一(yī / yì /yí)些配置:

@Configuration @EnableWebMvc public class MvcWebConfig implements WebMvcConfigurer { @Autowired private ApplicationContext applicationContext; @Bean public SpringResourceTemplateResolver templateResolver() { SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); templateResolver.setApplicationContext(applicationContext); templateResolver.setPrefix("/WEB-INF/views/"); templateResolver.setSuffix(".html"); return templateResolver; } @Bean public SpringTemplateEngine templateEngine() { SpringTemplateEngine templateEngine = new SpringTemplateEngine(); templateEngine.setTemplateResolver(templateResolver()); templateEngine.setEnableSpringELCompiler(true); return templateEngine; } @Override public void configureViewResolvers(ViewResolverRegistry registry) { ThymeleafViewResolver resolver = new ThymeleafViewResolver(); resolver.setTemplateEngine(templateEngine()); registry.viewResolver(resolver); } }

SpringBoot1X隻需要(yào / yāo) spring-boot-starter-thymeleaf的(de)依賴項來(lái)啓用 Web應用程序中的(de) Thymeleaf支持。   但是(shì)由于(yú) Thymeleaf3.0中的(de)新功能,我們必須将 thymeleaf-layout-dialect 添加爲(wéi / wèi) SpringBoot2XWeb應用程序中的(de)依賴項。配置好依賴,我們就(jiù)可以(yǐ)将模闆添加到(dào) src/main/resources/templates文件夾中, SpringBoot将自動顯示它們。

Spring Security 配置

爲(wéi / wèi)簡單起見,我們使用框架默認的(de) HTTPBasic身份驗證。讓我們首先看一(yī / yì /yí)下使用 Spring啓用 Security所需的(de)依賴關系和(hé / huò)配置。

Spring首先需要(yào / yāo)依賴 spring-security-web和(hé / huò) spring-security-config 模塊。接下來(lái), 我們需要(yào / yāo)添加一(yī / yì /yí)個(gè)擴展 WebSecurityConfigurerAdapter的(de)類,并使用 @EnableWebSecurity注解:

@Configuration @EnableWebSecurity public class CustomWebSecurityConfigurerAdapter extends WebSecurityConfigurerAdapter { @Autowired public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { auth.inMemoryAuthentication() .withUser("admin") .password(passwordEncoder() .encode("password")) .authorities("ROLE_ADMIN"); } @Override protected void configure(HttpSecurity http) throws Exception { http.authorizeRequests() .anyRequest().authenticated() .and() .httpBasic(); } @Bean public PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } }

這(zhè)裏我們使用 inMemoryAuthentication來(lái)設置身份驗證。同樣, SpringBoot也(yě)需要(yào / yāo)這(zhè)些依賴項才能使其工作。但是(shì)我們隻需要(yào / yāo)定義 spring-boot-starter-security的(de)依賴關系,因爲(wéi / wèi)這(zhè)會自動将所有相關的(de)依賴項添加到(dào)類路徑中。

SpringBoot中的(de)安全配置與上(shàng)面的(de)相同

應用程序啓動引導配置

Spring和(hé / huò) SpringBoot中應用程序引導的(de)基本區别在(zài)于(yú) servletSpring使用 web.xmlSpringServletContainerInitializer作爲(wéi / wèi)其引導入口點。SpringBoot僅使用 Servlet3功能來(lái)引導應用程序,下面讓我們詳細來(lái)了(le/liǎo)解下

Spring 引導配置

Spring支持傳統的(de) web.xml引導方式以(yǐ)及最新的(de) Servlet3+方法。

配置 web.xml方法啓動的(de)步驟

Servlet容器(服務器)讀取 web.xml

web.xml中定義的(de) DispatcherServlet由容器實例化

DispatcherServlet通過讀取 WEB-INF/{servletName}-servlet.xml來(lái)創建 WebApplicationContext。最後, DispatcherServlet注冊在(zài)應用程序上(shàng)下文中定義的(de) bean

使用 Servlet3+方法的(de) Spring啓動步驟

容器搜索實現 ServletContainerInitializer的(de)類并執行 SpringServletContainerInitializer找到(dào)實現所有類 WebApplicationInitializer``WebApplicationInitializer創建具有XML或上(shàng)下文 @ConfigurationWebApplicationInitializer創建 DispatcherServlet與先前創建的(de)上(shàng)下文。

SpringBoot 引導配置

Spring Boot應用程序的(de)入口點是(shì)使用@SpringBootApplication注釋的(de)類

@SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

默認情況下, SpringBoot使用嵌入式容器來(lái)運行應用程序。在(zài)這(zhè)種情況下, SpringBoot使用 publicstaticvoidmain入口點來(lái)啓動嵌入式 Web服務器。此外,它還負責将 ServletFilter和(hé / huò) ServletContextInitializerbean從應用程序上(shàng)下文綁定到(dào)嵌入式 servlet容器。SpringBoot的(de)另一(yī / yì /yí)個(gè)特性是(shì)它會自動掃描同一(yī / yì /yí)個(gè)包中的(de)所有類或 Main類的(de)子(zǐ)包中的(de)組件。

SpringBoot提供了(le/liǎo)将其部署到(dào)外部容器的(de)方式。我們隻需要(yào / yāo)擴展 SpringBootServletInitializer即可:

/** * War部署 * * @author SanLi * Created by 2689170096@qq.com on 2018/4/15 */ public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } @Override public void onStartup(ServletContext servletContext) throws ServletException { super.onStartup(servletContext); servletContext.addListener(new HttpSessionEventPublisher()); } }

這(zhè)裏外部 servlet容器查找在(zài)war包下的(de) META-INF文件夾下MANIFEST.MF文件中定義的(de) Main-classSpringBootServletInitializer将負責綁定 ServletFilter和(hé / huò) ServletContextInitializer

打包和(hé / huò)部署

最後,讓我們看看如何打包和(hé / huò)部署應用程序。這(zhè)兩個(gè)框架都支持 Maven和(hé / huò) Gradle等通用包管理技術。但是(shì)在(zài)部署方面,這(zhè)些框架差異很大(dà)。例如,Spring Boot Maven插件在(zài) Maven中提供 SpringBoot支持。它還允許打包可執行 jarwar包并 就(jiù)地(dì / de)運行應用程序。

在(zài)部署環境中 SpringBoot 對比 Spring的(de)一(yī / yì /yí)些優點包括:

1、

提供嵌入式容器支持

2、使用命令 java -jar

獨立運行jar

3、

在(zài)外部容器中部署時(shí),可以(yǐ)選擇排除依賴關系以(yǐ)避免潛在(zài)的(de)jar沖突

4、

部署時(shí)靈活指定配置文件的(de)選項

5、用于(yú)集成測試的(de)随機端口生成

結論

簡而(ér)言之(zhī),我們可以(yǐ)說(shuō) SpringBoot隻是(shì) Spring本身的(de)擴展,使開發,測試和(hé / huò)部署更加方便。項目源碼資料獲取方式:關注小編+轉發文章+私信【 666

】免費獲取!!!

Java八股文面試資料獲取方式:關注小編+轉發文章+私信【 13 】免費獲取!!!

上(shàng)一(yī / yì /yí)篇:java開發簡曆模闆「7篇」(java開發)java開發工程師簡曆自我評價,

下一(yī / yì /yí)篇:在(zài)人(rén)工智能開發方面,Java 能與 Python 相媲美嗎?(java開發)java與人(rén)工智能哪個(gè)好就(jiù)業,

在(zài)線咨詢

點擊這(zhè)裏給我發消息 售前咨詢專員

點擊這(zhè)裏給我發消息 售後服務專員

在(zài)線咨詢

免費通話

24小時(shí)免費咨詢

請輸入您的(de)聯系電話,座機請加區号

免費通話

微信掃一(yī / yì /yí)掃

微信聯系
返回頂部