<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4363922986149351174</id><updated>2026-06-09T13:38:09.909+08:00</updated><category term="Oracle"/><category term="Oracle DB"/><category term="Oracle_DB"/><category term="Oracle SQL"/><category term="JAVA"/><category term="css-基本類"/><category term="MySQL"/><category term="CSS Selector"/><category term="jQuery"/><category term="JavaScript-基本類"/><category term="Spring Boot"/><category term="JavaScript"/><category term="JavaScript HTML DOM"/><category term="JavaScript-HTML_DOM"/><category term="CSS3"/><category term="JAVA-基本類"/><category term="jQuery UI"/><category term="Apache"/><category term="Oracle GROUP BY"/><category term="datepicker"/><category term="Android"/><category term="Oracle Date"/><category term="c"/><category term="JAVA-lang套件"/><category term="Linux"/><category term="Oracle Sub Query"/><category term="Spring-基本類"/><category term="jQuery-基本類"/><category term="MySQL-進階系列教學"/><category term="Android基本類"/><category term="Grails"/><category term="Oracle join"/><category term="SQLite"/><category term="Spring"/><category term="WIN7-基本類"/><category term="grails-基本類"/><category term="linux cent os"/><category term="CKEditor"/><category term="JAVA-流程控制類"/><category term="JAVA_Spring"/><category term="PHP"/><category term="Spring MVC"/><category term="MySQL-基本系列教學"/><category term="Notepad"/><category term="Notepad++"/><category term="SQLite for java"/><category term="Windows"/><category term="c/c++"/><category term="eclipse"/><category term="jQuery-Selector"/><category term="sqldeveloper"/><category term="DB_Toad"/><category term="JAVA_IDE_Eclipse"/><category term="JavaScript-String類"/><category term="MySQL DB Toad"/><category term="MySQL-DATE相關"/><category term="MySQL-函式相關"/><category term="Spring Bean"/><category term="Android Studio"/><category term="HTML5"/><category term="Hibernate"/><category term="JAVA-OCWCD"/><category term="JavaScript-陣列類"/><category term="Docker"/><category term="JAVA-程式分享"/><category term="JAVA.util套件"/><category term="JavaScript-數學類"/><category term="MinGw"/><category term="MySQL-其它類"/><category term="Servlet"/><category term="centos"/><category term="Apache_Tomcat"/><category term="Apache套件_POI"/><category term="CSS"/><category term="JavaScript-Date物件"/><category term="JavaScript-其它類"/><category term="PostgreSQL"/><category term="httpd"/><category term="log4j"/><category term="基本資訊"/><category term="開發工具"/><category term="CSS Properties"/><category term="Dev-C++"/><category term="IntelliJ IDEA"/><category term="Oracle DDL"/><category term="Sublime"/><category term="TortoiseSVN"/><category term="apache_Maven"/><category term="Android NDK"/><category term="Eclipse IDE for C/C++"/><category term="Hibernate-基本類"/><category term="JAVA-問題"/><category term="JAVA-綀習分享"/><category term="JVM"/><category term="Linux 指令"/><category term="Proxy Server"/><category term="Spring Mobile"/><category term="Spring web"/><category term="Squid"/><category term="VirtualBox"/><category term="maven"/><category term="zk"/><category term="生活其它"/><category term="Bootstrap"/><category term="Filter"/><category term="JAVA_IO"/><category term="JAVA_其它_itext套件"/><category term="JBoss-問題"/><category term="JSP"/><category term="Jboss"/><category term="Listener"/><category term="MySQL-語法快速查詢"/><category term="Spring AOP"/><category term="Spring Batch"/><category term="Spring Boot Actuator"/><category term="Spring i18n"/><category term="Subversive"/><category term="Tomcat 8"/><category term="UML"/><category term="WebJars"/><category term="WinMerge"/><category term="c++"/><category term="c語言綀習題"/><category term="jQuery Mobile"/><category term="jQuery-事件處理"/><category term="jQuery-套件類"/><category term="putty"/><category term="svn"/><category term="weblogic"/><category term="Apache_JMeter"/><category term="Apache套件_BeanUtils"/><category term="Apache套件_StringUtils"/><category term="Base64"/><category term="Google API"/><category term="HTML5-基本類"/><category term="Heap"/><category term="JAVA 7"/><category term="JAVA SE 、JAVA EE、JAVA ME"/><category term="JAVA 日期"/><category term="JAVA-OCJP"/><category term="JAVA-WEB"/><category term="JAVA_IDE"/><category term="JAVA其它"/><category term="JBoss Server"/><category term="JDK"/><category term="JMX"/><category term="JRE"/><category term="Java RMI"/><category term="Java String"/><category term="Joda Time"/><category term="Linux_其它"/><category term="MySQL教學"/><category term="Oracle_VirtualBox"/><category term="SQL Server"/><category term="SWT"/><category term="Session"/><category term="Stack"/><category term="Struts 2"/><category term="Tool"/><category term="ZK Studio"/><category term="csv"/><category term="grails-其它類"/><category term="jQuery-進階"/><category term="java mail"/><category term="java web"/><category term="java8"/><category term="jsoup"/><category term="mockmvc"/><category term="modules"/><category term="tomcat"/><category term="win10"/><category term="其它類"/><category term="圖片工具"/><category term="模擬器"/><category term="讀書分享"/><category term="開發資訊"/><title type='text'>Java程式教學甘仔店</title><subtitle type='html'>本站Java鬥陣仔甘仔店為學徒程式開發教學學習，這裡有Java程式開發相關技術等學習交流。&#xa;主要提高開發程式效率同時分享一些開發程式經驗、深入探討開發程式體驗等技術和教學。&#xa;相關技術等學習交流語言(Languages)及框架工具(Software)/環境(Environment)/資料庫(Database)&#xa;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>841</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-436287575711563397</id><published>2022-10-31T18:08:00.000+08:00</published><updated>2022-10-31T18:08:08.599+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Listener"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Listener  使用 Java class </title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用Listener。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;Spring Boot web 專案 RestController Annotation&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot;&gt;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestListener 及 ListenerConfig&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8N7ds1dZIB6_T__KPiOJJKt1dWshMKRySy1EHGFxwus3F8SCy8l_inbZTFu0i7vcq7iAMcXfu-H5p69OQZm7Vd_Pd0aAF14CBzV9AQxOgJGXHrxWWzRP34H6w9qYLXvD_qSGchdPFVKTecn7dXIC0z8lc4MYrgT9D-Q5IyXSEb1_J8J6O8TNGewHGTQ/s545/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;474&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8N7ds1dZIB6_T__KPiOJJKt1dWshMKRySy1EHGFxwus3F8SCy8l_inbZTFu0i7vcq7iAMcXfu-H5p69OQZm7Vd_Pd0aAF14CBzV9AQxOgJGXHrxWWzRP34H6w9qYLXvD_qSGchdPFVKTecn7dXIC0z8lc4MYrgT9D-Q5IyXSEb1_J8J6O8TNGewHGTQ/w348-h400/1.png&quot; width=&quot;348&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、TestListener 程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文 TestListener 程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;	package com.example.demo.listener;

	import javax.servlet.ServletContextEvent;
	import javax.servlet.ServletContextListener;

	public class TestListener implements ServletContextListener {
		@Override
		public void contextInitialized(ServletContextEvent sce) {
			System.out.println(&quot;Initialized Listener...&quot;);
		}

		@Override
		public void contextDestroyed(ServletContextEvent sce) {
			System.out.println(&quot;Destroyed Listener...&quot;);
		}
	}



&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、加入config類&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.config;

	import org.springframework.boot.web.servlet.ServletListenerRegistrationBean;
	import org.springframework.context.annotation.Bean;
	import org.springframework.context.annotation.Configuration;

	import com.example.demo.listener.TestListener;

	@Configuration
	public class ListenerConfig {
		@Bean
		public ServletListenerRegistrationBean getServletListenerRegistrationBean(){
			ServletListenerRegistrationBean bean = new ServletListenerRegistrationBean(new TestListener());
			return bean;
		}
	}



&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZRbRgTzCTrm44zcdJht_HwMmaQ2sLV6gCU_H-7C0V0Ze8Q41jU0de3s810lepAj3Rq1Y5kFPslX8HH2AGSqbcAGtPqaS9mM4UP1h98jBuAZvcp_uKn3k96s23d-dzBLNx5tyCMVL6EAW8Re1JkQ8a60cscM4ft-ZfM9DoydNwh32puGMAPBK56yRJhw/s825/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;628&quot; data-original-width=&quot;825&quot; height=&quot;305&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZRbRgTzCTrm44zcdJht_HwMmaQ2sLV6gCU_H-7C0V0Ze8Q41jU0de3s810lepAj3Rq1Y5kFPslX8HH2AGSqbcAGtPqaS9mM4UP1h98jBuAZvcp_uKn3k96s23d-dzBLNx5tyCMVL6EAW8Re1JkQ8a60cscM4ft-ZfM9DoydNwh32puGMAPBK56yRJhw/w400-h305/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizPmh0ttZeq9Qg_3f5_2TrHFFw1kEs5YOtPPGEfuONOjm-Xy8gvHnBZ-YF_E5QOAFrF58gbXJelavw1gmJjXNG9hJSpTUoQnjhc_vZZgwS2cmRa2HRi9Ub9JtB866MJjmlY1wGCPF1pWPCXmIuE7wLRFGSvFxsZz1Zuu8-qOL1wLZCKANSqwbDlYAPCQ/s1843/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;472&quot; data-original-width=&quot;1843&quot; height=&quot;103&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizPmh0ttZeq9Qg_3f5_2TrHFFw1kEs5YOtPPGEfuONOjm-Xy8gvHnBZ-YF_E5QOAFrF58gbXJelavw1gmJjXNG9hJSpTUoQnjhc_vZZgwS2cmRa2HRi9Ub9JtB866MJjmlY1wGCPF1pWPCXmIuE7wLRFGSvFxsZz1Zuu8-qOL1wLZCKANSqwbDlYAPCQ/w400-h103/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-listener-class-demo.zip&quot;&gt;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-listener-class-demo.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;





&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/436287575711563397/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-listener-java-class.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/436287575711563397'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/436287575711563397'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-listener-java-class.html' title='Spring Boot web 專案整合 Listener  使用 Java class '/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi8N7ds1dZIB6_T__KPiOJJKt1dWshMKRySy1EHGFxwus3F8SCy8l_inbZTFu0i7vcq7iAMcXfu-H5p69OQZm7Vd_Pd0aAF14CBzV9AQxOgJGXHrxWWzRP34H6w9qYLXvD_qSGchdPFVKTecn7dXIC0z8lc4MYrgT9D-Q5IyXSEb1_J8J6O8TNGewHGTQ/s72-w348-h400-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-1652512613899732860</id><published>2022-10-31T18:02:00.003+08:00</published><updated>2022-10-31T18:02:21.772+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Listener"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Listener  使用 annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用 Listener。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;Spring Boot web 專案 RestController Annotation&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot;&gt;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestListener&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFF3QixCs2kS9aneXTxVe0CjIXkSyZODEyh6B2zBb_4JbbO94pLdCL48cEQwCxl3YWeOthkZ0dLoruE2-0dZlUyONNjH80vEHadF5C4HUeUFajuuOSvTBuRlwkBbkwR6FqTNnPIPHQlKrXxqdumuw1LVFaa1SLgsRG8SmxwSIbRk9ueLwYcXHFxTrdxQ/s529/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;394&quot; data-original-width=&quot;529&quot; height=&quot;297&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFF3QixCs2kS9aneXTxVe0CjIXkSyZODEyh6B2zBb_4JbbO94pLdCL48cEQwCxl3YWeOthkZ0dLoruE2-0dZlUyONNjH80vEHadF5C4HUeUFajuuOSvTBuRlwkBbkwR6FqTNnPIPHQlKrXxqdumuw1LVFaa1SLgsRG8SmxwSIbRk9ueLwYcXHFxTrdxQ/w400-h297/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、TestListener 程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文TestListener 程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.listener;

	import javax.servlet.ServletContextEvent;
	import javax.servlet.ServletContextListener;
	import javax.servlet.annotation.WebListener;

	@WebListener
	public class TestListener implements ServletContextListener {
		@Override
		public void contextInitialized(ServletContextEvent sce) {
			System.out.println(&quot;Initialized Listener...&quot;);
		}

		@Override
		public void contextDestroyed(ServletContextEvent sce) {
			System.out.println(&quot;Destroyed Listener...&quot;);
		}
	}

&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;五、main 主程試加入&amp;nbsp; @ServletComponentScan&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHo4wIV4_EXietGxR4dDHoO3mpL2oeraqAsuMbjd4xadX7wzyLuDXUCwX9CGFCZ1UuHNMER9Snvq-4jhK-WyREa5X5zfMYMvjE9KBdjx-GZJD0VBAcSeQjz0IXuUl86mTanReKMxBXQ-hWmwEid_iOFdtoamAetk_jXpVkOWM0ybAx84UxBKBuT1nWg/s1307/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;547&quot; data-original-width=&quot;1307&quot; height=&quot;168&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXHo4wIV4_EXietGxR4dDHoO3mpL2oeraqAsuMbjd4xadX7wzyLuDXUCwX9CGFCZ1UuHNMER9Snvq-4jhK-WyREa5X5zfMYMvjE9KBdjx-GZJD0VBAcSeQjz0IXuUl86mTanReKMxBXQ-hWmwEid_iOFdtoamAetk_jXpVkOWM0ybAx84UxBKBuT1nWg/w400-h168/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKewXFJfGawG5Px19A8b6AeTrzkNLCLobsIEbvIxSlseftMNePguH8qUOxiOianqR-FolY5H4DCCwO0AXT_-FbHo7b0w20JxNIai14KfV1p2e4jNRgQaisH2Y5xH06JNWMqa5hiZgdMp6jR8Hv0v1D6cXmC2crp8tvlEaHDnSYuG1oLwgpSMS1A-1bsQ/s823/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;629&quot; data-original-width=&quot;823&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhKewXFJfGawG5Px19A8b6AeTrzkNLCLobsIEbvIxSlseftMNePguH8qUOxiOianqR-FolY5H4DCCwO0AXT_-FbHo7b0w20JxNIai14KfV1p2e4jNRgQaisH2Y5xH06JNWMqa5hiZgdMp6jR8Hv0v1D6cXmC2crp8tvlEaHDnSYuG1oLwgpSMS1A-1bsQ/w400-h306/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPn5sqMq4Vz1ddZqwmLapBJDct0DKVC3UrzCK0krpyy6bzpfwODVLaSxP8sHkYMlS-fv0qpYX6CGCJ6dZBJ--Z7-YkCygQ6iJry1DYFoZxsvYA3h3-uV-vrSp-6CppAE8MJzHEuPGqb_J7OifhNtPH7Lsx79KxaFGmsb0i-G9F53CgSU2XhDO0rZRFpw/s1818/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;474&quot; data-original-width=&quot;1818&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiPn5sqMq4Vz1ddZqwmLapBJDct0DKVC3UrzCK0krpyy6bzpfwODVLaSxP8sHkYMlS-fv0qpYX6CGCJ6dZBJ--Z7-YkCygQ6iJry1DYFoZxsvYA3h3-uV-vrSp-6CppAE8MJzHEuPGqb_J7OifhNtPH7Lsx79KxaFGmsb0i-G9F53CgSU2XhDO0rZRFpw/w400-h104/4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-listener-annotation-demo.zip&quot;&gt;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-listener-annotation-demo.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;





&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/1652512613899732860/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-listener-annotation.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/1652512613899732860'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/1652512613899732860'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-listener-annotation.html' title='Spring Boot web 專案整合 Listener  使用 annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFF3QixCs2kS9aneXTxVe0CjIXkSyZODEyh6B2zBb_4JbbO94pLdCL48cEQwCxl3YWeOthkZ0dLoruE2-0dZlUyONNjH80vEHadF5C4HUeUFajuuOSvTBuRlwkBbkwR6FqTNnPIPHQlKrXxqdumuw1LVFaa1SLgsRG8SmxwSIbRk9ueLwYcXHFxTrdxQ/s72-w400-h297-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-3168208566715356897</id><published>2022-10-31T17:31:00.004+08:00</published><updated>2022-10-31T17:31:59.675+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Filter"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Filter  使用 Java class </title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用Filter。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;Spring Boot web 專案 RestController Annotation&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot;&gt;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestFilter 及FilterConfig&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHkl3LODpXFHcKkWSYeH2YsTXlUvaFo5-2AmsFfJQm9PEVfSgJJC9eFGjR1xLTsQ2N2vqWlA0n3ZN4WphFJaBRg5YF9z3emL7kCcFBURDPa6zJvO0nzJu0SCTJsr89zsFqYVs3b2VDITRKJpsisxpx_inUCvX5bs5EhgMb8DsStFi7TZiRIfZB824iKw/s607/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;607&quot; data-original-width=&quot;542&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHkl3LODpXFHcKkWSYeH2YsTXlUvaFo5-2AmsFfJQm9PEVfSgJJC9eFGjR1xLTsQ2N2vqWlA0n3ZN4WphFJaBRg5YF9z3emL7kCcFBURDPa6zJvO0nzJu0SCTJsr89zsFqYVs3b2VDITRKJpsisxpx_inUCvX5bs5EhgMb8DsStFi7TZiRIfZB824iKw/w358-h400/1.png&quot; width=&quot;358&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、TestFilter程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文TestFilter程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;	package com.example.demo.filter;

	import javax.servlet.*;
	import java.io.IOException;

	public class TestFilter implements Filter {
		@Override
		public void init(FilterConfig filterConfig) throws ServletException {

		}

		@Override
		public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
				throws IOException, ServletException {
			System.out.println(&quot;doFilter 開始 &quot;);
			filterChain.doFilter(servletRequest,servletResponse);
			System.out.println(&quot;doFilter 結束 &quot;);
		}

		@Override
		public void destroy() {

		}
	}


&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、加入config類&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.config;

	import com.example.demo.filter.TestFilter;
	import org.springframework.boot.web.servlet.FilterRegistrationBean;
	import org.springframework.context.annotation.Bean;
	import org.springframework.context.annotation.Configuration;

	@Configuration
	public class FilterConfig {
		@Bean
		public FilterRegistrationBean getFilterRegistrationBean(){
			FilterRegistrationBean bean = new FilterRegistrationBean(new TestFilter());
			//bean.addUrlPatterns(&quot;/testFilter&quot;);
			bean.addUrlPatterns(new String[]{&quot;*.do&quot;,&quot;*.jsp&quot;});
			return bean;
		}
	}
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpKbIBO8_a_M6x8S9Gwxpsa0mGTEUrz9e-V7Gw4jzDB_NQY8-La87ySivUL3q0U9ym4DJwogUsRhauIiVHWu3rpXd_HV3V58PXRz3-4LoMU_5BswZ6jGgWHMUZNQCITGWEf0h-E5hcFPW9gqZbiG0QaFXjyo1d4NA8LsOESFCSPoaGAxAMKKdPRNkQEA/s893/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;651&quot; data-original-width=&quot;893&quot; height=&quot;291&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjpKbIBO8_a_M6x8S9Gwxpsa0mGTEUrz9e-V7Gw4jzDB_NQY8-La87ySivUL3q0U9ym4DJwogUsRhauIiVHWu3rpXd_HV3V58PXRz3-4LoMU_5BswZ6jGgWHMUZNQCITGWEf0h-E5hcFPW9gqZbiG0QaFXjyo1d4NA8LsOESFCSPoaGAxAMKKdPRNkQEA/w400-h291/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試 http://localhost:8080/testFilter.jsp&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeK6Gzprw3qesdCKQDUPIBj4FRz77rX-LAz7bay73nTMyxhRj3lH5-R0oKey0WP3IJJrc-UXqBqEf1knKYSUV2uHB9jOFuDCwHljAm4xPbl2y09kK9jVtsg5EJFj_imNfnDi9fCR2qVnuRb5Wd4aevtdmCxtMCa3AKhmFde4c5nqtCUOE6cQp2g51G1g/s1337/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;921&quot; data-original-width=&quot;1337&quot; height=&quot;275&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjeK6Gzprw3qesdCKQDUPIBj4FRz77rX-LAz7bay73nTMyxhRj3lH5-R0oKey0WP3IJJrc-UXqBqEf1knKYSUV2uHB9jOFuDCwHljAm4xPbl2y09kK9jVtsg5EJFj_imNfnDi9fCR2qVnuRb5Wd4aevtdmCxtMCa3AKhmFde4c5nqtCUOE6cQp2g51G1g/w400-h275/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-filter-class-demo.zip&quot;&gt;
https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-web-filter-class-demo.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/3168208566715356897/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-filter-spring-boot-2.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3168208566715356897'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3168208566715356897'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-filter-spring-boot-2.html' title='Spring Boot web 專案整合 Filter  使用 Java class '/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjHkl3LODpXFHcKkWSYeH2YsTXlUvaFo5-2AmsFfJQm9PEVfSgJJC9eFGjR1xLTsQ2N2vqWlA0n3ZN4WphFJaBRg5YF9z3emL7kCcFBURDPa6zJvO0nzJu0SCTJsr89zsFqYVs3b2VDITRKJpsisxpx_inUCvX5bs5EhgMb8DsStFi7TZiRIfZB824iKw/s72-w358-h400-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-3631397700783132374</id><published>2022-10-31T17:24:00.003+08:00</published><updated>2022-10-31T17:33:03.661+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Filter"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Filter  使用 annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用Filter。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;Spring Boot web 專案 RestController Annotation&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot;&gt;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestFilter&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqXoCEWDjE7QdlhcD5iy5l4r4jwsflb5NDVSwromm4M1VOqTLMhOGGupDUaOe4Qzj7SdSxKX2LzXBYznY-aeHXR6UzE6Xr_mKa6bpt9cAanZ1OzZeGOzWVvKHCF47nglxH1iwC0sL59OKe1zF11cfwSNqNNWdKAXtlMvrUwZAGSJrvTFrcuRySxmEoFw/s652/1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;465&quot; data-original-width=&quot;652&quot; height=&quot;285&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqXoCEWDjE7QdlhcD5iy5l4r4jwsflb5NDVSwromm4M1VOqTLMhOGGupDUaOe4Qzj7SdSxKX2LzXBYznY-aeHXR6UzE6Xr_mKa6bpt9cAanZ1OzZeGOzWVvKHCF47nglxH1iwC0sL59OKe1zF11cfwSNqNNWdKAXtlMvrUwZAGSJrvTFrcuRySxmEoFw/w400-h285/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、TestFilter程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文TestFilter程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.filter;

	import javax.servlet.*;
	import javax.servlet.annotation.WebFilter;
	import java.io.IOException;
	//@WebFilter(filterName = &quot;TestFilter&quot;,urlPatterns = {&quot;*.jsp&quot;,&quot;*.do&quot;})
	@WebFilter(filterName = &quot;TestFilter&quot;,urlPatterns = &quot;/testFilter&quot;)
	public class TestFilter implements Filter {
		@Override
		public void init(FilterConfig filterConfig) throws ServletException {

		}

		@Override
		public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
				throws IOException, ServletException {
			System.out.println(&quot;doFilter 開始 &quot;);
			filterChain.doFilter(servletRequest,servletResponse);
			System.out.println(&quot;doFilter 結束 &quot;);
		}

		@Override
		public void destroy() {

		}
	}
&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、main 主程試加入&amp;nbsp; @ServletComponentScan&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitcKCED7OycQCaWNc_WxIXA0JEdTZLn2qp_R0-YZMj6YwlCJcY_kD1kyVb2c9BAuy2aart-qO9pG1O4mD7rN6t2AyK-apc6mTZUP8cktxkqufAOnpjcF3H76NqbjF4DWzNw1_amkQFp7f-XBpsK7neVgPehfBl4-eqcuMII9_GrBEr1GlD2pj-rsI7Ng/s1145/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;547&quot; data-original-width=&quot;1145&quot; height=&quot;191&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEitcKCED7OycQCaWNc_WxIXA0JEdTZLn2qp_R0-YZMj6YwlCJcY_kD1kyVb2c9BAuy2aart-qO9pG1O4mD7rN6t2AyK-apc6mTZUP8cktxkqufAOnpjcF3H76NqbjF4DWzNw1_amkQFp7f-XBpsK7neVgPehfBl4-eqcuMII9_GrBEr1GlD2pj-rsI7Ng/w400-h191/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzkHcuZOqw8hmCjQF3cPclBl8CyXQkGiQNoset-FkW3uYtthrhqX35MXYU82eNbl6mMn1vjKYdZDTdSg28YrkcRbJby9SV4tcKrP5hw82xQqBOSOWqIujJIo6gmAxeG0P-9qO-9BWqaeTzLLlqr4aw3hcGEW087SxodfyuGQ1xVxSAY8FkyuoNaWeTiQ/s956/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;663&quot; data-original-width=&quot;956&quot; height=&quot;278&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzkHcuZOqw8hmCjQF3cPclBl8CyXQkGiQNoset-FkW3uYtthrhqX35MXYU82eNbl6mMn1vjKYdZDTdSg28YrkcRbJby9SV4tcKrP5hw82xQqBOSOWqIujJIo6gmAxeG0P-9qO-9BWqaeTzLLlqr4aw3hcGEW087SxodfyuGQ1xVxSAY8FkyuoNaWeTiQ/w400-h278/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試 http://localhost:8080/testFilter&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsG3Go7pAYhtPvhV9N1wCcn1D75qlsoTIL834PslrTeMRzsHBwfRUjDxnIGJZtJrxUqaEIxPejb-zNLe_IB_O38iIrXyILhzlMzaf2O2vwIAWA_KQFUDNm4AQHVjzaV7IMySHP9IWz7TgNvGHE9XLXN9mN69tBI5I_ZSg_mPy698BEUGFeQgmmGK8wDQ/s1179/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;834&quot; data-original-width=&quot;1179&quot; height=&quot;283&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsG3Go7pAYhtPvhV9N1wCcn1D75qlsoTIL834PslrTeMRzsHBwfRUjDxnIGJZtJrxUqaEIxPejb-zNLe_IB_O38iIrXyILhzlMzaf2O2vwIAWA_KQFUDNm4AQHVjzaV7IMySHP9IWz7TgNvGHE9XLXN9mN69tBI5I_ZSg_mPy698BEUGFeQgmmGK8wDQ/w400-h283/4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/sprint-boot-web-filter-annotation-demo.zip&quot;&gt;
https://github.com/pclevinblog/SpringBoot/blob/master/sprint-boot-web-filter-annotation-demo.zip&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;




&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/3631397700783132374/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-filter-annotation.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3631397700783132374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3631397700783132374'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-filter-annotation.html' title='Spring Boot web 專案整合 Filter  使用 annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqXoCEWDjE7QdlhcD5iy5l4r4jwsflb5NDVSwromm4M1VOqTLMhOGGupDUaOe4Qzj7SdSxKX2LzXBYznY-aeHXR6UzE6Xr_mKa6bpt9cAanZ1OzZeGOzWVvKHCF47nglxH1iwC0sL59OKe1zF11cfwSNqNNWdKAXtlMvrUwZAGSJrvTFrcuRySxmEoFw/s72-w400-h285-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-4037062338532139106</id><published>2022-10-31T15:14:00.004+08:00</published><updated>2022-10-31T15:47:19.914+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Servlet"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Servlet 使用 Java class </title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用Servlet。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 RestController Annotation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestServlet&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSLMO_IioTQ8TiWq2g4p-njV09058b9K2M-aSaOCgsSaURBIfD1DkSbSuoz6_t_dHdddzzIyyS4N7O5ySqiHPXOYJJs2H0M2ogL4piw49H1ILbibglkIYdRVmr47XnBYcBCK4hkkM6CsMUE-nAlFvmgatn4TebOTaBUgem2AIXtBvNbiAQjggm8K9-Xw/s1866/1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;565&quot; data-original-width=&quot;1866&quot; height=&quot;121&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSLMO_IioTQ8TiWq2g4p-njV09058b9K2M-aSaOCgsSaURBIfD1DkSbSuoz6_t_dHdddzzIyyS4N7O5ySqiHPXOYJJs2H0M2ogL4piw49H1ILbibglkIYdRVmr47XnBYcBCK4hkkM6CsMUE-nAlFvmgatn4TebOTaBUgem2AIXtBvNbiAQjggm8K9-Xw/w400-h121/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.servlet;

	import javax.servlet.ServletException;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;
	import java.io.IOException;


	public class TestServlet extends HttpServlet {

		@Override
		protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
			super.doGet(req, resp);
			System.out.println(&quot;.. test servlet.&quot;);
		}
	}

&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、加入config類&lt;/div&gt;&lt;div&gt;圖2&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj26t2QPfgDkgh5CTiB66oi29mgCFVEJqupBgebrX7Xw0o0frKQj9UuOGIg5qpu_aWxHONSP-P0zQASwyuc-uTF7Ueh8nAbnL8DnAcLMWKOJl0Qts6s86mSveEIArHChaw1IFj1B2vgCr94v1Twnac8jNazHOeIQX7SYzgVzqWQ8-_STwsbclit_3J45Q/s1580/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;503&quot; data-original-width=&quot;1580&quot; height=&quot;127&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj26t2QPfgDkgh5CTiB66oi29mgCFVEJqupBgebrX7Xw0o0frKQj9UuOGIg5qpu_aWxHONSP-P0zQASwyuc-uTF7Ueh8nAbnL8DnAcLMWKOJl0Qts6s86mSveEIArHChaw1IFj1B2vgCr94v1Twnac8jNazHOeIQX7SYzgVzqWQ8-_STwsbclit_3J45Q/w400-h127/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.config;

import com.example.demo.servlet.TestServlet;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ServletConfig {
    @Bean
    public ServletRegistrationBean getServletRegistrationBean(){
        ServletRegistrationBean bean = new ServletRegistrationBean(new TestServlet());
        bean.addUrlMappings(&quot;/test2&quot;);
        return bean;
    }
}


&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3q39NCwkiCY07PUBsIGWB9WapG6EJ7JtlRFlrGoysAAynh3p8oNfs0eOCLii2qoYmtYgFkb1X3ApySzTM4_UhHT9Qr1pePzcunelao_AtfPqrHWgzP1oRfnqbtoCFL_Ifi_02wyps3B3ahQ3ZPq1L_R71C2WOTK-pFeSWhQ3uPCOQVxSXi3nou1Ls8Q/s767/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;653&quot; data-original-width=&quot;767&quot; height=&quot;340&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj3q39NCwkiCY07PUBsIGWB9WapG6EJ7JtlRFlrGoysAAynh3p8oNfs0eOCLii2qoYmtYgFkb1X3ApySzTM4_UhHT9Qr1pePzcunelao_AtfPqrHWgzP1oRfnqbtoCFL_Ifi_02wyps3B3ahQ3ZPq1L_R71C2WOTK-pFeSWhQ3uPCOQVxSXi3nou1Ls8Q/w400-h340/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試 http://localhost:8080/test&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDzsB7SDn9MSvbamqZ5CZFb_ALXqEwjm0SuNul6p4EIyL9TfLyFmLIQeFRYhfCL5RQ_t0hYqzb3twvZRTcVDGUB0EZLdfxfxT4xC2X7ffCEN9gnukwthtWAEVa9Fz3O-rbc03GpYr6jwZlU_kOPV6xjRn2_LN8EjmHJ_rnwV1XryQ6Tqt7OWHxpxsSbw/s1385/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;880&quot; data-original-width=&quot;1385&quot; height=&quot;203&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDzsB7SDn9MSvbamqZ5CZFb_ALXqEwjm0SuNul6p4EIyL9TfLyFmLIQeFRYhfCL5RQ_t0hYqzb3twvZRTcVDGUB0EZLdfxfxT4xC2X7ffCEN9gnukwthtWAEVa9Fz3O-rbc03GpYr6jwZlU_kOPV6xjRn2_LN8EjmHJ_rnwV1XryQ6Tqt7OWHxpxsSbw/s320/4.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-servlet-class-demo.zip&quot;&gt;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-servlet-class-demo.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;



&lt;br /&gt;
&lt;pre class=&quot;codeblock&quot;&gt;&lt;/pre&gt;


&lt;pre class=&quot;prettyprint&quot;&gt;&lt;/pre&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/4037062338532139106/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-servlet-java-class.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/4037062338532139106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/4037062338532139106'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-servlet-java-class.html' title='Spring Boot web 專案整合 Servlet 使用 Java class '/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSLMO_IioTQ8TiWq2g4p-njV09058b9K2M-aSaOCgsSaURBIfD1DkSbSuoz6_t_dHdddzzIyyS4N7O5ySqiHPXOYJJs2H0M2ogL4piw49H1ILbibglkIYdRVmr47XnBYcBCK4hkkM6CsMUE-nAlFvmgatn4TebOTaBUgem2AIXtBvNbiAQjggm8K9-Xw/s72-w400-h121-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6658955935251284703</id><published>2022-10-31T15:04:00.007+08:00</published><updated>2022-10-31T15:47:33.612+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Servlet"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案整合 Servlet 使用 WebServlet Annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單介紹一下，在spring boot 中如何使用Servlet。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.7.5&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、建立 Spring Boot web 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;Spring Boot web 專案 RestController Annotation&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-web&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、建立 TestServlet&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\main\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG2aLkV4JPaWfCBTmlyQSo1ukmmJ2xjJaWcO1-jqA4_32VujeJ-no8JERMIoga4gXQ5Zyhx8cdV18jx3UE5o_sRYg18ZMflQWPGRL7Ianr0YztWOx4NSOC4PdG7N7n1jXB1HsMJyOcJxOFPlNFp32SlwyQG9GyJ0R90r75Nxx5KImOPmsQwBY0EbjhYw/s890/1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;471&quot; data-original-width=&quot;890&quot; height=&quot;211&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG2aLkV4JPaWfCBTmlyQSo1ukmmJ2xjJaWcO1-jqA4_32VujeJ-no8JERMIoga4gXQ5Zyhx8cdV18jx3UE5o_sRYg18ZMflQWPGRL7Ianr0YztWOx4NSOC4PdG7N7n1jXB1HsMJyOcJxOFPlNFp32SlwyQG9GyJ0R90r75Nxx5KImOPmsQwBY0EbjhYw/w400-h211/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;pre class=&quot;prettyprint&quot;&gt;package com.example.demo.servlet;

	import javax.servlet.ServletException;
	import javax.servlet.annotation.WebServlet;
	import javax.servlet.http.HttpServlet;
	import javax.servlet.http.HttpServletRequest;
	import javax.servlet.http.HttpServletResponse;
	import java.io.IOException;

	@WebServlet(name=&quot;TestServlet&quot;,urlPatterns = &quot;/test&quot;)
	public class TestServlet extends HttpServlet {

		@Override
		protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
			super.doGet(req, resp);
			System.out.println(&quot;.. test servlet.&quot;);
		}
	}


&lt;/pre&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;註: 重點&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;1、 繼承 extends HttpServlet&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;2、 覆寫 Override doGet&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;3、 設定 @WebServlet&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmSHNtYA694Rv5XpncvGH5DPMtsUPpNrBqwdtiPtODJ9P8exPBm8BNQq_IUHuAaH29A9MLyM_espVA2BhMJScu5Mceexd_aItXvRPtR_Ya0okbYnOTrW2PETR0IhOB5FGv1oRLULhqMF-6md8R-T_MGdkNUTmO6DC1mFBbiAs_4GV4BOKYwoHyfF8QcQ/s1503/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;478&quot; data-original-width=&quot;1503&quot; height=&quot;127&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmSHNtYA694Rv5XpncvGH5DPMtsUPpNrBqwdtiPtODJ9P8exPBm8BNQq_IUHuAaH29A9MLyM_espVA2BhMJScu5Mceexd_aItXvRPtR_Ya0okbYnOTrW2PETR0IhOB5FGv1oRLULhqMF-6md8R-T_MGdkNUTmO6DC1mFBbiAs_4GV4BOKYwoHyfF8QcQ/w400-h127/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、main 主程試加入&amp;nbsp; @ServletComponentScan&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNFEOS3R13FQxspkqSrlGtd90Ylm-iT57enxaCMpI3_nqV_3m8uxQXLZozrbuBUEQ7RPWTw0TMAG-hPHnlNvy6NZv2zNcBUlv4A4MSCH1Wgol0JcC7SHvTkhAMpeBixXnyZEnP_ORaEB61aDmtV4I7K3dD2ma-fIcDtg_qtnUkSTzy9vRxi7X23nYWQg/s937/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;489&quot; data-original-width=&quot;937&quot; height=&quot;209&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNFEOS3R13FQxspkqSrlGtd90Ylm-iT57enxaCMpI3_nqV_3m8uxQXLZozrbuBUEQ7RPWTw0TMAG-hPHnlNvy6NZv2zNcBUlv4A4MSCH1Wgol0JcC7SHvTkhAMpeBixXnyZEnP_ORaEB61aDmtV4I7K3dD2ma-fIcDtg_qtnUkSTzy9vRxi7X23nYWQg/w400-h209/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、啟動 Application&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipj6Ug6vDaQlmU-toeSVCYPT0kHjcggvaCgRpqxivSWXy3xQDlM1ClVmC-Ab9zYrXPOXuHjVeG-rQ7VLH1iv-DbD9OvGoVk32W0K2GeUzTT8i-lHt7mxw4EqLJFpey5a03Wm-RxMmeyDcbaItHbSsCUvCcLBxBu6hnRbA5CTwLTxRNuhsdAgt4RmVLhQ/s936/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;936&quot; data-original-width=&quot;899&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipj6Ug6vDaQlmU-toeSVCYPT0kHjcggvaCgRpqxivSWXy3xQDlM1ClVmC-Ab9zYrXPOXuHjVeG-rQ7VLH1iv-DbD9OvGoVk32W0K2GeUzTT8i-lHt7mxw4EqLJFpey5a03Wm-RxMmeyDcbaItHbSsCUvCcLBxBu6hnRbA5CTwLTxRNuhsdAgt4RmVLhQ/w384-h400/4.png&quot; width=&quot;384&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、測試 http://localhost:8080/test&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖5&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnnmFvlbVHB2nf6JhCSKH2oTUgvfco3Xyy5zh6JREh0DErmPZeE95hgW6IxX2SECAbgylDBhCM4mB4BjxrEdy420Cu_kMPg37sNMbN-sCQtlZoOxA8lLclGeotodSL2Ic9NxOvXYjmwO2suDvPE2LRO1seDLDniA8HOlIbx3FmuJwhhx1gzwqTxOcWw/s1541/5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;845&quot; data-original-width=&quot;1541&quot; height=&quot;219&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhDnnmFvlbVHB2nf6JhCSKH2oTUgvfco3Xyy5zh6JREh0DErmPZeE95hgW6IxX2SECAbgylDBhCM4mB4BjxrEdy420Cu_kMPg37sNMbN-sCQtlZoOxA8lLclGeotodSL2Ic9NxOvXYjmwO2suDvPE2LRO1seDLDniA8HOlIbx3FmuJwhhx1gzwqTxOcWw/w400-h219/5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-servlet-annotaion-demo.zip&quot;&gt;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-servlet-annotaion-demo.zip&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6658955935251284703/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-servlet-webservlet.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6658955935251284703'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6658955935251284703'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-servlet-webservlet.html' title='Spring Boot web 專案整合 Servlet 使用 WebServlet Annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG2aLkV4JPaWfCBTmlyQSo1ukmmJ2xjJaWcO1-jqA4_32VujeJ-no8JERMIoga4gXQ5Zyhx8cdV18jx3UE5o_sRYg18ZMflQWPGRL7Ianr0YztWOx4NSOC4PdG7N7n1jXB1HsMJyOcJxOFPlNFp32SlwyQG9GyJ0R90r75Nxx5KImOPmsQwBY0EbjhYw/s72-w400-h211-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6910768007056949483</id><published>2022-10-31T12:12:00.002+08:00</published><updated>2022-10-31T12:12:33.450+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mockmvc"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web test mockMvc</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用版本：&lt;/div&gt;&lt;div&gt;spring boot 2.6.3&lt;/div&gt;&lt;div&gt;java 11&lt;/div&gt;&lt;div&gt;window 11&lt;/div&gt;&lt;div&gt;IntelliJ IDEA&lt;/div&gt;&lt;div&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、MockMvc 整合測試&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;Spring Boot 提供的「MockMvc」元件。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;它能針對當前專案模擬出發送 HTTP 請求的動作。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;跟 Postman 很像。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;建立HelloController 來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考本文：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 RestController Annotation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、pom.xml&amp;nbsp; 的 dependencies 加入 測試類啟動器&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;spring-boot-starter-test&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;scope&amp;gt;test&amp;lt;/scope&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;三、建立 HelloControllerTest&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;src\test\java\ (專案package)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;路徑如圖1：&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLNcRfjajMEk8Q2nQNHDMRykiA7l_b9JFUQcw8vdAshnIxza8MvGyvTs7wEdhhXBRfv3Xf_p6S8CmVq8lt4fO7RQZjZD0ouzNxjGXcnrl3mWtJpN0VQ5OMALcCZCx3hDVUjeE61zmGoVMMJYdw4f11NkQPuBzQjgc5FZpbffqChEqCtDQXAHmRd8vlkQ/s517/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;438&quot; data-original-width=&quot;517&quot; height=&quot;271&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLNcRfjajMEk8Q2nQNHDMRykiA7l_b9JFUQcw8vdAshnIxza8MvGyvTs7wEdhhXBRfv3Xf_p6S8CmVq8lt4fO7RQZjZD0ouzNxjGXcnrl3mWtJpN0VQ5OMALcCZCx3hDVUjeE61zmGoVMMJYdw4f11NkQPuBzQjgc5FZpbffqChEqCtDQXAHmRd8vlkQ/s320/1.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、程式內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文程式使用簡單寫法。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RunWith(SpringRunner.class)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@SpringBootTest&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public class HelloControllerTest {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;private MockMvc mockMvc;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@Before&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;public void setup(){&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;mockMvc = MockMvcBuilders.standaloneSetup(new HelloController()).build();&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@Test&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;public void testHello() throws Exception {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;mockMvc.perform(MockMvcRequestBuilders.get(&quot;/test1&quot;)).andDo(print());&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;類別加上三個標記。&lt;/div&gt;&lt;div&gt;@RunWith 和 @SpringBootTest&amp;nbsp; 是定義測試程式要在 Spring Boot 的環境下執行。&lt;/div&gt;&lt;div&gt;@AutoConfigureMockMvc 代表測試開始時會在元件容器中建立 MockMvc 元件&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、建立 HelloController 測試用的&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RestController&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public class HelloController {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;@RequestMapping(value = &quot;/test1&quot;)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;public String test1() {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;System.out.println(&quot;HelloController -- Spring boot test&quot;);&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;return &quot;Spring boot test&quot;;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;六、執行測試結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;點選 HelloControllerTest -&amp;gt; 右鍵 -&amp;gt; Run HelloControllerTest&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtuaI8fVQ6ZJOgKub-Q0oVrYyDUibOvXFwlySMSCAm3lxjsw0Z6V6tRu1G60QhEoTZ9f9A6XwiKWmGZKSgIFmyOKpG_c7Ua_kf4LAaswUz52FzW6HyRC0BtbJLpaDxdzQ_9dXa2dKskBb9TerYqhE9DQjUEr21SPJT6KSTHUQjlno-3QtdHy5Yy7kyAw/s811/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;811&quot; data-original-width=&quot;681&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtuaI8fVQ6ZJOgKub-Q0oVrYyDUibOvXFwlySMSCAm3lxjsw0Z6V6tRu1G60QhEoTZ9f9A6XwiKWmGZKSgIFmyOKpG_c7Ua_kf4LAaswUz52FzW6HyRC0BtbJLpaDxdzQ_9dXa2dKskBb9TerYqhE9DQjUEr21SPJT6KSTHUQjlno-3QtdHy5Yy7kyAw/w336-h400/2.png&quot; width=&quot;336&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3 執行中&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJLMuj7cWYyI7UY9eUXXAVhgUNRiGurKuSeXdB1Vze8j7z-PMqaqkD9fsmfPGWyHiXlPjHqgJDiFkhS7mMLyNogIIKkVe2qDYkD8v_53ivK2oDk74gg_8MC5ckyRrc0yAcmUZHwuwDjDuSRxa31W55FWErVzkq-hnEDzXx_HUdwhW7HHHCWnQAZ8J5pQ/s1876/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;399&quot; data-original-width=&quot;1876&quot; height=&quot;85&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJLMuj7cWYyI7UY9eUXXAVhgUNRiGurKuSeXdB1Vze8j7z-PMqaqkD9fsmfPGWyHiXlPjHqgJDiFkhS7mMLyNogIIKkVe2qDYkD8v_53ivK2oDk74gg_8MC5ckyRrc0yAcmUZHwuwDjDuSRxa31W55FWErVzkq-hnEDzXx_HUdwhW7HHHCWnQAZ8J5pQ/w400-h85/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4 執行結果 ，如果打勾綠色的，就是執行成功&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCfRMkoSIg5kccyVRCKrsC5LQzba3pSuGpwRfy0UVX0re1wvNWXJGI6j2B7ivMHFjqYxF0e0mpkGxeuEr3OcYYLZDZV3BVg6xjokLScUFtzPg3BthcWVHK39h2AJB6mQsoC0NMY0whU8HPMxIISdDldl9bwqC6W5U76qgCQ_aXtaYbPoXuGTtOhYxWIg/s615/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;401&quot; data-original-width=&quot;615&quot; height=&quot;261&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiCfRMkoSIg5kccyVRCKrsC5LQzba3pSuGpwRfy0UVX0re1wvNWXJGI6j2B7ivMHFjqYxF0e0mpkGxeuEr3OcYYLZDZV3BVg6xjokLScUFtzPg3BthcWVHK39h2AJB6mQsoC0NMY0whU8HPMxIISdDldl9bwqC6W5U76qgCQ_aXtaYbPoXuGTtOhYxWIg/w400-h261/4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖5 執行結果訊息 主要程式為這行 .andDo(print())&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXFkTMuw5Y-RpsEWUSCdr5_nC63cyGy3IwxeGIKjyDC8ZpEsAuMCjqmYv6E5k6O0U_WO4jv4kKhoyDzDFSwKe7B68KBV-8ZspNRN8a3HO-PP5di7QMDTn0RSQrFAURUqb2ctr0ToAHQglWG9Ttd7W51IgtG97O0eFsr6xjTN862ZIJVVq4057k4UYevw/s1325/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;902&quot; data-original-width=&quot;1325&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXFkTMuw5Y-RpsEWUSCdr5_nC63cyGy3IwxeGIKjyDC8ZpEsAuMCjqmYv6E5k6O0U_WO4jv4kKhoyDzDFSwKe7B68KBV-8ZspNRN8a3HO-PP5di7QMDTn0RSQrFAURUqb2ctr0ToAHQglWG9Ttd7W51IgtG97O0eFsr6xjTN862ZIJVVq4057k4UYevw/w400-h272/5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖6 如果執行測試失敗會有紅色的錯誤訊息&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOVv33AB0GozDdSTXYvV15lwN2iFjd1M8WqCUNbQRy7tFHvtLlzlvLplXTwEJSyzarrSqlkoUdihbln8jcPrP0LzHxHzhm6nUTdVS4TWcpPFdjCzhmA-FM48e28Vew7gvuKicmSxRDRxAEyfyYXcfVyKi6P0pPS1Vz1cXgmfSqpgLj9AjjjiLklg3EJQ/s1242/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;464&quot; data-original-width=&quot;1242&quot; height=&quot;120&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjOVv33AB0GozDdSTXYvV15lwN2iFjd1M8WqCUNbQRy7tFHvtLlzlvLplXTwEJSyzarrSqlkoUdihbln8jcPrP0LzHxHzhm6nUTdVS4TWcpPFdjCzhmA-FM48e28Vew7gvuKicmSxRDRxAEyfyYXcfVyKi6P0pPS1Vz1cXgmfSqpgLj9AjjjiLklg3EJQ/s320/6.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;本專案下載：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-test-mockmvc-demo.zip&quot;&gt;https://github.com/pclevinblog/SpringBoot/blob/master/spring-boot-test-mockmvc-demo.zip&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6910768007056949483/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-test-mockmvc.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6910768007056949483'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6910768007056949483'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/10/spring-boot-web-test-mockmvc.html' title='Spring Boot web test mockMvc'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLNcRfjajMEk8Q2nQNHDMRykiA7l_b9JFUQcw8vdAshnIxza8MvGyvTs7wEdhhXBRfv3Xf_p6S8CmVq8lt4fO7RQZjZD0ouzNxjGXcnrl3mWtJpN0VQ5OMALcCZCx3hDVUjeE61zmGoVMMJYdw4f11NkQPuBzQjgc5FZpbffqChEqCtDQXAHmRd8vlkQ/s72-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-7852678685047651653</id><published>2022-05-22T17:48:00.000+08:00</published><updated>2022-05-22T17:48:03.117+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot Actuator"/><title type='text'>Spring Boot 使用 Actuator 檢查與監控專案-開啟監控功能</title><content type='html'>&lt;div&gt;續上一篇 &lt;a href=&quot;https://pclevin.blogspot.com/2022/05/spring-boot-actuator.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Spring Boot 使用 Actuator 檢查與監控專案&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上一篇基本的安裝好專案。本來來說明一下相關常用的設定。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、調整Actuator url path&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;預設是/actuator , 如果想要調整呢?&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;設定如下：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;management.endpoints.manageweb.base-path=/manage&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖1(都會變成/manage/xxx、可以用來防止被其他人猜到)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlNIaCoyrhfYjWRv5zSnm5wV-YeP2Pa7U3nVDoVFFHHyXtaBaC2d_FdNk2L0zPT9PvqmpJ1OuarOrUyebJ6cpi9v7RdcLWLnrpAmUjHgsCqx5PGy1WQvroDfElvqALoEUPtgapvvm06obz1rD8-UBLqNXwLHInBSSqec2hBmEdsKiP2RWVc6PCc4gO6Q/s843/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;843&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlNIaCoyrhfYjWRv5zSnm5wV-YeP2Pa7U3nVDoVFFHHyXtaBaC2d_FdNk2L0zPT9PvqmpJ1OuarOrUyebJ6cpi9v7RdcLWLnrpAmUjHgsCqx5PGy1WQvroDfElvqALoEUPtgapvvm06obz1rD8-UBLqNXwLHInBSSqec2hBmEdsKiP2RWVc6PCc4gO6Q/w400-h184/1.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2 結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig5CijPiQjEUY2D_ZFLL7j8y-TcVLwcPs0kiBmKPK9YaAIdLs1JR3ZMWvGutwNqr5W-IZqWGib5xKdtWtmMbD0zHhB2UALheLVoEdgdpvTPnPkzQl1HSUsir_bPBUxYVz9gYA0Yo6q8ev5xQP9FqleJkgG63HVoiTDF9hq-_RY_0V10DK6Mi4nrcJKNw/s551/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;400&quot; data-original-width=&quot;551&quot; height=&quot;290&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEig5CijPiQjEUY2D_ZFLL7j8y-TcVLwcPs0kiBmKPK9YaAIdLs1JR3ZMWvGutwNqr5W-IZqWGib5xKdtWtmMbD0zHhB2UALheLVoEdgdpvTPnPkzQl1HSUsir_bPBUxYVz9gYA0Yo6q8ev5xQP9FqleJkgG63HVoiTDF9hq-_RY_0V10DK6Mi4nrcJKNw/w400-h290/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;二、開啟所有endpoints(不包含shutdown)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3 management.endpoints.web.exposure.include=*&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0cfBOYPyZ2IQLlOMw_g6FHn1ofHJH2Dtep4yBgv4R1wuQyOTJ1FKgEFvce5WvmB6_Cwfhy5brNeFv6IVHQooSvLOw8NmxbZMc-u-PZL5T8QCgx3AVJ-CLit1mjUmy7Utw9NQqc6XNaEzZqUBnC6AzKYLpb8noMxLyVs0yZ_UZmnLwH_6agD-Jeb23AA/s795/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;348&quot; data-original-width=&quot;795&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0cfBOYPyZ2IQLlOMw_g6FHn1ofHJH2Dtep4yBgv4R1wuQyOTJ1FKgEFvce5WvmB6_Cwfhy5brNeFv6IVHQooSvLOw8NmxbZMc-u-PZL5T8QCgx3AVJ-CLit1mjUmy7Utw9NQqc6XNaEzZqUBnC6AzKYLpb8noMxLyVs0yZ_UZmnLwH_6agD-Jeb23AA/w400-h175/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_USO4ZMB4PgqCxHKbBeQThwSe3_iwjjzMjP9PP19mHrSoLQhvlSly2hzjMkZFA6HULVNq3RHsVt7rxqvKhc_88M49PStrae1ATXUoeXn9ZWx0HlgxH9pZ2znQhvFtm2ubDVrCyHVL0mlAqDSDKCJcG52cqkC-TpWknwtLHdW2tJhGuXFrvE-7Sxi1cg/s1000/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1000&quot; data-original-width=&quot;710&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_USO4ZMB4PgqCxHKbBeQThwSe3_iwjjzMjP9PP19mHrSoLQhvlSly2hzjMkZFA6HULVNq3RHsVt7rxqvKhc_88M49PStrae1ATXUoeXn9ZWx0HlgxH9pZ2znQhvFtm2ubDVrCyHVL0mlAqDSDKCJcG52cqkC-TpWknwtLHdW2tJhGuXFrvE-7Sxi1cg/w284-h400/4.png&quot; width=&quot;284&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;HTTP方法&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;Endpoint&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看有哪些 Actuator endpoint 是開放的&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/auditevent&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看 audit 的事件，例如認證進入、訂單失敗，需要搭配 Spring security 使用&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/beans&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看運行當下裡面全部的 bean&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/conditions&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看自動配置的結果，記錄哪些自動配置條件通過/沒通過&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/configprops&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看注入帶有 @ConfigurationProperties 類的 properties 值為何&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/env (常用)&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看全部環境屬性，可以看到 SpringBoot 載入了哪些 properties，&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;（但是會自動*掉帶有 key、password、secret 等關鍵字的 properties 的值，保護安全資訊！）&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/flyway&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看 flyway DB 的 migration 資訊&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/health (常用)&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看當前 SpringBoot 運行的健康指標&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/heapdump&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;取得 JVM 當下的 heap dump，會下載一個檔案&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/info&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看 properties 中 info 開頭的屬性的值&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/mappings&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看全部的 endpoint（包含 Actuator 的），以及他們和 Controller 的關係&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/metrics&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看有哪些指標&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;/actuator/metrics/{metric.name}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;分別查看各指標的詳細資訊&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;GET&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/scheduledtasks&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;查看定時任務的資訊&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、指定開啟功能&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;management.endpoints.web.exposure.include=beans,info&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖5&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwxse3Unzztq4vIcoxx-vJpkIQ8HG4SPnPP1ZhHcRG7DPe7Q8KOSQaCHH4gLy8ivxtJiGabVrqiEEGdIq3ttLlMVdB6Qmr9P5F53qfloSReeFyLWUgxxtJDU6dpB-8IjW-vp6J0zMji6sDOBuMpRvixR85GOVJBRW8M69DaXAnW8rYgCjb-PrDr9-Akw/s727/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;343&quot; data-original-width=&quot;727&quot; height=&quot;189&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwxse3Unzztq4vIcoxx-vJpkIQ8HG4SPnPP1ZhHcRG7DPe7Q8KOSQaCHH4gLy8ivxtJiGabVrqiEEGdIq3ttLlMVdB6Qmr9P5F53qfloSReeFyLWUgxxtJDU6dpB-8IjW-vp6J0zMji6sDOBuMpRvixR85GOVJBRW8M69DaXAnW8rYgCjb-PrDr9-Akw/w400-h189/5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖6&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYYhQ6ijqPerbOoNBGzPyTMfdnxTVP6j6sGt2Z74Cp6dNrkn9v-zBSgWuvOsQAON1Y-dSn2X9tNzzzpHBSaTIEd7Mj01Yl_ZEfGoOkMqv4jsHlTVHX6-D2vWYP3U8h9AUfkTyt0IJZW42pg1SIPSCDEj943lyJo_FMm7xdHh_sejlOikd6WdQO0RA2Q/s521/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;379&quot; data-original-width=&quot;521&quot; height=&quot;291&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlYYhQ6ijqPerbOoNBGzPyTMfdnxTVP6j6sGt2Z74Cp6dNrkn9v-zBSgWuvOsQAON1Y-dSn2X9tNzzzpHBSaTIEd7Mj01Yl_ZEfGoOkMqv4jsHlTVHX6-D2vWYP3U8h9AUfkTyt0IJZW42pg1SIPSCDEj943lyJo_FMm7xdHh_sejlOikd6WdQO0RA2Q/w400-h291/6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、指定關閉功能&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用 exclude可以用來關閉某些endpoints&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;management.endpoints.web.exposure.exclude=beans,info&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;management.endpoints.web.exposure.include=*&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖7&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9vJ39SEVW_7dTYwN68cJn3gg3J4DaFdV75SnhQFWoXM3fUHrG-YBSjOOKV7PJ4bKN5NvETzng3kSC7UdhWBlK2NEjJHbMaXJP3_GGbk5ZSHjbTKw4Qy4LGTo-suFsYFVdvQ3NjaTSzlPEE5NdsfGQ3yWRHBOw4Bv9i4UUcICcBSyCZ0igKpT_VMRiHA/s607/7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;327&quot; data-original-width=&quot;607&quot; height=&quot;215&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9vJ39SEVW_7dTYwN68cJn3gg3J4DaFdV75SnhQFWoXM3fUHrG-YBSjOOKV7PJ4bKN5NvETzng3kSC7UdhWBlK2NEjJHbMaXJP3_GGbk5ZSHjbTKw4Qy4LGTo-suFsYFVdvQ3NjaTSzlPEE5NdsfGQ3yWRHBOw4Bv9i4UUcICcBSyCZ0igKpT_VMRiHA/w400-h215/7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖8&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9Ji83wYMoxpSpe9xv0yzZVeQhecwnsovyduVJuzePSb5maeRrZfbeM6E1Il8PfuWXsycbymb_g3T15wWhOxBgWNcNupkU2zM8EWWkDl9fnx31b17_cNBTZr17IAo2yDv1pi8_SxeoctLCxQGTxbxoutLRQyj91nAZTLXZ5wZfyapBXpXW4gk_2sgxA/s992/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;992&quot; data-original-width=&quot;602&quot; height=&quot;400&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhy9Ji83wYMoxpSpe9xv0yzZVeQhecwnsovyduVJuzePSb5maeRrZfbeM6E1Il8PfuWXsycbymb_g3T15wWhOxBgWNcNupkU2zM8EWWkDl9fnx31b17_cNBTZr17IAo2yDv1pi8_SxeoctLCxQGTxbxoutLRQyj91nAZTLXZ5wZfyapBXpXW4gk_2sgxA/w242-h400/8.png&quot; width=&quot;242&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;https://docs.spring.io/spring-boot/docs/current/actuator-api/htmlsingle/#overview&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;https://kucw.github.io/blog/2020/7/spring-actuator/&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/7852678685047651653/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/05/spring-boot-actuator_22.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7852678685047651653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7852678685047651653'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/05/spring-boot-actuator_22.html' title='Spring Boot 使用 Actuator 檢查與監控專案-開啟監控功能'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlNIaCoyrhfYjWRv5zSnm5wV-YeP2Pa7U3nVDoVFFHHyXtaBaC2d_FdNk2L0zPT9PvqmpJ1OuarOrUyebJ6cpi9v7RdcLWLnrpAmUjHgsCqx5PGy1WQvroDfElvqALoEUPtgapvvm06obz1rD8-UBLqNXwLHInBSSqec2hBmEdsKiP2RWVc6PCc4gO6Q/s72-w400-h184-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6979596557294479277</id><published>2022-05-22T16:50:00.001+08:00</published><updated>2022-05-22T17:48:33.000+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot Actuator"/><title type='text'>Spring Boot 使用 Actuator 檢查與監控專案</title><content type='html'>&lt;br /&gt;
&lt;div&gt;Actuator 是 SpringBoot 提供的監控功能。&lt;/div&gt;&lt;div&gt;可以查看當前 SpringBoot 程式運行狀況，&lt;/div&gt;&lt;div&gt;如自動化配置的資訊、創建的 Spring beans 和獲取當前的 properties 屬性值等。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、SpringBoot Actuator 的使用&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;需要加入相關的 maven dependency&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-actuator/2.6.3&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;groupId&amp;gt;org.springframework.boot&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;lt;artifactId&amp;gt;spring-boot-starter-actuator&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGM26uUgDscBr7VEIxpvCykXyl-fdkhYI1YPZfHuB-33z7c9cu11xnTi1fG3ktzvseEhdC1ln6-XaFYu6PROY5bFsg76z88IKJPfPDzY7MwXxkc2YZTe8aWOymJ8U7rv11BQy8KI7zfDYu6u7ukKQ3lHamj8W-Y-U_TyTkcr8OE-WUGnwkKZJf6lZjuA/s1351/1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;461&quot; data-original-width=&quot;1351&quot; height=&quot;218&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGM26uUgDscBr7VEIxpvCykXyl-fdkhYI1YPZfHuB-33z7c9cu11xnTi1fG3ktzvseEhdC1ln6-XaFYu6PROY5bFsg76z88IKJPfPDzY7MwXxkc2YZTe8aWOymJ8U7rv11BQy8KI7zfDYu6u7ukKQ3lHamj8W-Y-U_TyTkcr8OE-WUGnwkKZJf6lZjuA/w640-h218/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;如果你使用：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;SpringBoot 開發工具IDEA 及基本專案簡介&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;https://pclevin.blogspot.com/2022/01/springboot-idea.html&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖2 可以選擇加入Dependencies&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOiPzNmJt_ar3aGh_G6DLdjubILhQua_0iE7eif-1f1KwRizZvmM18mxo9LVyHM9JM4mlvXl7mmoXtCMNO0lCfJzVA4B2x1msNevPpbbx3VPtN4ZEm2UOOBcYNp4e7uvo694RbpG725UXNxRMx7m1Tz2CleHY13cSxfvOSeuzK-fRE8OO5cR2jhveuuw/s1211/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1018&quot; data-original-width=&quot;1211&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgOiPzNmJt_ar3aGh_G6DLdjubILhQua_0iE7eif-1f1KwRizZvmM18mxo9LVyHM9JM4mlvXl7mmoXtCMNO0lCfJzVA4B2x1msNevPpbbx3VPtN4ZEm2UOOBcYNp4e7uvo694RbpG725UXNxRMx7m1Tz2CleHY13cSxfvOSeuzK-fRE8OO5cR2jhveuuw/w400-h336/2.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;SpringBoot 網路線上建立專案&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;https://pclevin.blogspot.com/2022/01/spring-spring-initializr-httpsstart.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRhu0uIsm048lXBJTfdQp_bNITel8_gc8v8aIZ-u-oYRn5yr_YqJT0yg8aDz61tYtLNhn1s5uta678c2bhF99cXPhntQM9cEpoz7TexaEpyaM-uITe8y9X3vBKiVrHUO8DYQlDV1zALmrFLgPFR3qKxL9uyIbjExS14e7hQPwxZ452P0A1U7EYy88Zww/s1818/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;823&quot; data-original-width=&quot;1818&quot; height=&quot;181&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRhu0uIsm048lXBJTfdQp_bNITel8_gc8v8aIZ-u-oYRn5yr_YqJT0yg8aDz61tYtLNhn1s5uta678c2bhF99cXPhntQM9cEpoz7TexaEpyaM-uITe8y9X3vBKiVrHUO8DYQlDV1zALmrFLgPFR3qKxL9uyIbjExS14e7hQPwxZ452P0A1U7EYy88Zww/w400-h181/3.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、啟動後 查看log&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;查看LOG後 會看到/actuator&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖4&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioD7dmumnXElUUvOaAPZX9Zd4CQ7JbXryPTW3Aa-On5Dud3O_nUp402ccOW2JBSpi8GsvCLTr7qg2WaPWi9vBMJ6gV8mkXk0j3ToxWuGTJdvYgofZIWwiqY9cztUPIXCdteeV500nW5fZ2aSzj2iwFiUEEU3aAM1NP1iH5YPwAjRLgm4ecFwZZwkWaUA/s1747/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;615&quot; data-original-width=&quot;1747&quot; height=&quot;141&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEioD7dmumnXElUUvOaAPZX9Zd4CQ7JbXryPTW3Aa-On5Dud3O_nUp402ccOW2JBSpi8GsvCLTr7qg2WaPWi9vBMJ6gV8mkXk0j3ToxWuGTJdvYgofZIWwiqY9cztUPIXCdteeV500nW5fZ2aSzj2iwFiUEEU3aAM1NP1iH5YPwAjRLgm4ecFwZZwkWaUA/w400-h141/4.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、查看actuator網頁， 默認開放可查看的資訊&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;http://localhost:8080/actuator&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖5&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;/actuator/health 查看當前 SpringBoot 運行的健康指標&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnT63-DxO-nTHS87fz7dJ1bXNh-4l6n0ri3nw2j5p4psjnvBE2AAUxiTFOsU66S5G8mTnDj16mlHhhHtygYJMIGnUnp2bmGCndytTR3XmfTUbBbqXiimLp78-PZyBx56RyYEhnx4CCeWlTST9EDPeP9toMfrSY1sjriAUdTza1jF1jQDNb8tfWjkkwng/s771/5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;525&quot; data-original-width=&quot;771&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnT63-DxO-nTHS87fz7dJ1bXNh-4l6n0ri3nw2j5p4psjnvBE2AAUxiTFOsU66S5G8mTnDj16mlHhhHtygYJMIGnUnp2bmGCndytTR3XmfTUbBbqXiimLp78-PZyBx56RyYEhnx4CCeWlTST9EDPeP9toMfrSY1sjriAUdTza1jF1jQDNb8tfWjkkwng/w400-h272/5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;下一篇 &lt;a href=&quot;https://pclevin.blogspot.com/2022/05/spring-boot-actuator_22.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;Spring Boot 使用 Actuator 檢查與監控專案-開啟監控功能&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6979596557294479277/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/05/spring-boot-actuator.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6979596557294479277'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6979596557294479277'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/05/spring-boot-actuator.html' title='Spring Boot 使用 Actuator 檢查與監控專案'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGM26uUgDscBr7VEIxpvCykXyl-fdkhYI1YPZfHuB-33z7c9cu11xnTi1fG3ktzvseEhdC1ln6-XaFYu6PROY5bFsg76z88IKJPfPDzY7MwXxkc2YZTe8aWOymJ8U7rv11BQy8KI7zfDYu6u7ukKQ3lHamj8W-Y-U_TyTkcr8OE-WUGnwkKZJf6lZjuA/s72-w640-h218-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-9119440448800526163</id><published>2022-02-18T12:27:00.000+08:00</published><updated>2022-02-18T12:27:06.988+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring MVC"/><title type='text'>Spring MVC</title><content type='html'>&lt;br /&gt;
&lt;div&gt;MVC是一種軟體架構模式，把軟體系統分為三個基本部分&lt;/div&gt;&lt;div&gt;模型(Model)、視圖(View)和控制器(Controller)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;模型（Model）進行資料管理和封裝數據和一般他們會組成的POJO、VO。&lt;/div&gt;&lt;div&gt;視圖（View）是負責呈現數據和讓客戶端的瀏覽器能夠將資料展示出來。&lt;/div&gt;&lt;div&gt;控製器（Controller）負責處理用戶的請求，對請求進行處理。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7G3BXFzVwf0o_x6HaLxpWmd1RktxpFD0V3c1H6qd_U8n6NlqImdbazCit8jMbWUrP15e4pHIWGl9G66Ejd8zkzQpmUSFcr147WaYqyUGcOaF3-W4t0j3cD0kMYg40i194_h7Jend-6WjoIOr0ayyML5sMFQIEP5vPhwkSEeSmRXp1rCbBoVct6LbDoQ=s750&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;Spring MVC流程圖&quot; border=&quot;0&quot; data-original-height=&quot;435&quot; data-original-width=&quot;750&quot; height=&quot;373&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7G3BXFzVwf0o_x6HaLxpWmd1RktxpFD0V3c1H6qd_U8n6NlqImdbazCit8jMbWUrP15e4pHIWGl9G66Ejd8zkzQpmUSFcr147WaYqyUGcOaF3-W4t0j3cD0kMYg40i194_h7Jend-6WjoIOr0ayyML5sMFQIEP5vPhwkSEeSmRXp1rCbBoVct6LbDoQ=w640-h373&quot; title=&quot;Spring MVC流程圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Spring MVC流程圖&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;故事版來說明MVC&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;有一天&amp;nbsp; L哥，找朋友 小M 喝咖啡聊是非。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;小M說： 我們家三兄弟合開一家MVC雜貨店。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;大哥叫 大C，店長，負責接收客戶的請求及下指令處理。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;老二叫 二V，負責將跟客戶講通，因為二V哥會多國語言。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;我老三叫 小M，負責商品及客戶訊息等資訊打包，拿給二V哥。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgTTWTcF_dmm6MxILCRK2iH9Swa3nI3Qz_LzCMddAnRWS1YsS7kB9bWziMVD-f-1rhlzzDx67qfMI27h5UJgnKD9q1iuDGkNTXuyzEnng3fuat2fSuuyfobqn4l1iqlstHbJaEn4P_DfSO1RYpIee4QDsRg9iEY36sL0lC80FXbUygZ7TV6vYX5ZuowyA=s1165&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;MVC雜貨店流程圖&quot; border=&quot;0&quot; data-original-height=&quot;456&quot; data-original-width=&quot;1165&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgTTWTcF_dmm6MxILCRK2iH9Swa3nI3Qz_LzCMddAnRWS1YsS7kB9bWziMVD-f-1rhlzzDx67qfMI27h5UJgnKD9q1iuDGkNTXuyzEnng3fuat2fSuuyfobqn4l1iqlstHbJaEn4P_DfSO1RYpIee4QDsRg9iEY36sL0lC80FXbUygZ7TV6vYX5ZuowyA=w640-h250&quot; title=&quot;MVC雜貨店流程圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;MVC雜貨店流程圖&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;L哥說： 我有一個朋友 叫 S (Servlet) ，他也是開雜貨店的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;但他只有一個人，超忙的，忙到一直出錯。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;					&lt;/span&gt;&lt;/div&gt;&lt;table align=&quot;center&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;tr-caption-container&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjzuMdJXsm6SakXIL1TB0EmP2nwjAwYMz5AaflzY0PqicLHaqMCWMaYFeflwAbKkO-NtEh95JeqV71mCjjB8oM3Da3s_8iFuilzi1tX-MPZ7vDzOWopoIc6XivwRkl3JJoDT4YPa153RiLqph1MXdJrgJzYLkl30rypJ3E8u2VVMSsSKY4LPWcL857bOA=s1247&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: auto; margin-right: auto;&quot;&gt;&lt;img alt=&quot;S雜貨店流程圖&quot; border=&quot;0&quot; data-original-height=&quot;365&quot; data-original-width=&quot;1247&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjzuMdJXsm6SakXIL1TB0EmP2nwjAwYMz5AaflzY0PqicLHaqMCWMaYFeflwAbKkO-NtEh95JeqV71mCjjB8oM3Da3s_8iFuilzi1tX-MPZ7vDzOWopoIc6XivwRkl3JJoDT4YPa153RiLqph1MXdJrgJzYLkl30rypJ3E8u2VVMSsSKY4LPWcL857bOA=w640-h188&quot; title=&quot;S雜貨店流程圖&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td class=&quot;tr-caption&quot; style=&quot;text-align: center;&quot;&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;S雜貨店流程圖&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(本篇故事先到此處，後面待續。)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;上面的故事看完後，在以前開發沒有MVC的設計想法時，使用Servlet開發時，什麼都要自己來做，&lt;/div&gt;&lt;div&gt;後來才有人會想出來一些解決軟體開發上的不便利，而但生了相關的軟體框架。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;相關參考：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2013/05/javaspringspring-mvc-project.html&quot;&gt;[JAVA_Spring]建立一個基本簡單的Spring MVC project&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/9119440448800526163/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-mvc.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/9119440448800526163'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/9119440448800526163'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-mvc.html' title='Spring MVC'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEj7G3BXFzVwf0o_x6HaLxpWmd1RktxpFD0V3c1H6qd_U8n6NlqImdbazCit8jMbWUrP15e4pHIWGl9G66Ejd8zkzQpmUSFcr147WaYqyUGcOaF3-W4t0j3cD0kMYg40i194_h7Jend-6WjoIOr0ayyML5sMFQIEP5vPhwkSEeSmRXp1rCbBoVct6LbDoQ=s72-w640-h373-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-7496057309080678348</id><published>2022-02-12T20:12:00.004+08:00</published><updated>2022-02-12T20:12:51.793+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring web"/><title type='text'>Spring Boot web 專案 Controller RequestBody ResponseBody annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@RequestBody annotation 將 HttpRequest Body 映射到domain object,，HttpRequest 主體自動反序列化到 Java 對像上。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@ResponseBody annotation 告訴控制器返回的對象自動序列化為 JSON 並傳回 HttpResponse 對象&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、@RequestBody 及 @ResponseBody 為JSON 資料請求及回應&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestBody 及 @ResponseBody 不指定MediaType 預設為 APPLICATION_JSON_VALUE&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;APPLICATION_JSON_VALUE = application/json&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;(spring-web-xxx-jar org.springframework.http.MediaType)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;程式：&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; @RequestMapping(value = &quot;/test1&quot;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; method = RequestMethod.POST)//produces= MediaType.APPLICATION_JSON_VALUE&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public @ResponseBody&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Book bodyTest1(@RequestBody Book book) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return book;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;圖1&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh0rdd-VJbOcAn5I3zaKkuxxlWxbBI7NmBQBDEo7dB8XreJb-G9dJ2lxQmgUGw2dxaKJVTyS87LLzK7xo8h4jSXuZxfHNxbDuuz6gDRowrceEei0jbY-IFgf7n0-H8oWK1AjlXKlrwS-xSx_9JRvHhFFGalhuwgVfZRSfCEtVDSHI6nTExszecLyUT6Ww=s1237&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;200&quot; data-original-width=&quot;1237&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh0rdd-VJbOcAn5I3zaKkuxxlWxbBI7NmBQBDEo7dB8XreJb-G9dJ2lxQmgUGw2dxaKJVTyS87LLzK7xo8h4jSXuZxfHNxbDuuz6gDRowrceEei0jbY-IFgf7n0-H8oWK1AjlXKlrwS-xSx_9JRvHhFFGalhuwgVfZRSfCEtVDSHI6nTExszecLyUT6Ww=w640-h104&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2 Book為 domain object，會將傳入參數映射到Book.java中。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgLK86qZ4BLMbg9VrCob2TE24NOoVamURu3TAxvuzYEXiKYTkWdynKdNbokG-1_K7c6bghtMyGC-hQWmsQMbRIc_qoPkqoFZ5_HJY2XFAmpiqPcL2wN1bHVm7Qgu8XlBVQVp_GSXUU4AFyR3H9rS3FrOTsd2IrMhKoIhcGY01R2ISsQ4mwqcDYMzGKGYA=s1184&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;608&quot; data-original-width=&quot;1184&quot; height=&quot;328&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgLK86qZ4BLMbg9VrCob2TE24NOoVamURu3TAxvuzYEXiKYTkWdynKdNbokG-1_K7c6bghtMyGC-hQWmsQMbRIc_qoPkqoFZ5_HJY2XFAmpiqPcL2wN1bHVm7Qgu8XlBVQVp_GSXUU4AFyR3H9rS3FrOTsd2IrMhKoIhcGY01R2ISsQ4mwqcDYMzGKGYA=w640-h328&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖3 測試 傳送資料為JSON格式，回應為JSON格式&lt;/div&gt;&lt;div&gt;測試URI：http://localhost:8080/books/test1&lt;/div&gt;&lt;div&gt;測試資料：&lt;/div&gt;&lt;div&gt;{&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &quot;id&quot;: 30,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &quot;name&quot;: &quot;java&quot;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &quot;price&quot;: &quot;100&quot;&lt;/div&gt;&lt;div&gt;}&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjC4AxVT1ucOs95k2q39cXvqcVV_ZbPJxNsrEde3z-gXpqzQTa9NL19JgwiotdgZLLKcv9fvb_R7kJJIlmQPPbN5TWesaB1jUQNYv0jlmRc7OaUnMUDZMFJvEdIV_-6ZLDRhZeoNPrxD45pXmWwTa5-Rr4SN8NRlDMvwit87uF3c8NlFZdtPp9vmwpL5w=s1204&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;564&quot; data-original-width=&quot;1204&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjC4AxVT1ucOs95k2q39cXvqcVV_ZbPJxNsrEde3z-gXpqzQTa9NL19JgwiotdgZLLKcv9fvb_R7kJJIlmQPPbN5TWesaB1jUQNYv0jlmRc7OaUnMUDZMFJvEdIV_-6ZLDRhZeoNPrxD45pXmWwTa5-Rr4SN8NRlDMvwit87uF3c8NlFZdtPp9vmwpL5w=w640-h300&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、@RequestBody 及 @ResponseBody 為 XML 資料請求及回應&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestBody 及 @ResponseBody 指定MediaType 為 APPLICATION_XML_VALUE&lt;/div&gt;&lt;div&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestMapping(value = &quot;/test2&quot;,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; method = RequestMethod.POST,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; produces=MediaType.APPLICATION_XML_VALUE)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public @ResponseBody&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; Book bodyTest2(@RequestBody Book book) {&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; return book;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; }&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhE8BfYo8mxqQ931JA8zbJSfDKXvMu1RODOhgQfFIQNB8RNDKZzCL_ZBbsw132tIcvgEBwucjjYd_cvJL5rFmeBzkRa6nUy4iqr-P_bXz2qczDtxph77G9iIFfIXfNabNsmZ4lJRsb2xjmOzLNgG2JbG2sK5KWKsNZhV8L4XCa8rQ6URPz8ARiZEzNucQ=s968&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;285&quot; data-original-width=&quot;968&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhE8BfYo8mxqQ931JA8zbJSfDKXvMu1RODOhgQfFIQNB8RNDKZzCL_ZBbsw132tIcvgEBwucjjYd_cvJL5rFmeBzkRa6nUy4iqr-P_bXz2qczDtxph77G9iIFfIXfNabNsmZ4lJRsb2xjmOzLNgG2JbG2sK5KWKsNZhV8L4XCa8rQ6URPz8ARiZEzNucQ=w640-h188&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 pom.xml 加入dependency com.fasterxml.jackson.dataformat&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;com.fasterxml.jackson.dataformat&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;jackson-dataformat-xml&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhD-r5qZiZpZc2U4EybUGNf-6UumXhCvEJ3zQEZ4MQ52tIRUMSrm3s2VmIcEFobFf5YrDIMwTBFxaQu6N2FjfXjZJPkD99dRiH4YslcHPC8EMNPM6w0VA6iLkpRI80yRAPTTcGMJ0cIb2Rj4_dchq7bg5xG2GZnNW49H8CAIrC1q5nU0Pkdp411y-61FQ=s891&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;218&quot; data-original-width=&quot;891&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhD-r5qZiZpZc2U4EybUGNf-6UumXhCvEJ3zQEZ4MQ52tIRUMSrm3s2VmIcEFobFf5YrDIMwTBFxaQu6N2FjfXjZJPkD99dRiH4YslcHPC8EMNPM6w0VA6iLkpRI80yRAPTTcGMJ0cIb2Rj4_dchq7bg5xG2GZnNW49H8CAIrC1q5nU0Pkdp411y-61FQ=w400-h98&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;參考官方文件&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;a href=&quot;https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.spring-mvc.write-xml-rest-service&quot; target=&quot;_blank&quot;&gt;https://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto.spring-mvc.write-xml-rest-service&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 測試&amp;nbsp; 傳送資料為XML格式，回應為XML格式&lt;/div&gt;&lt;div&gt;&lt;div style=&quot;background-color: #fffffe; font-family: Consolas, &amp;quot;Courier New&amp;quot;, monospace; font-size: 12px; line-height: 18px; white-space: pre;&quot;&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;?&lt;/span&gt;&lt;span style=&quot;color: grey;&quot;&gt;xml&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt;version&lt;/span&gt;=&lt;span style=&quot;color: blue;&quot;&gt;&quot;1.0&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: red;&quot;&gt;encoding&lt;/span&gt;=&lt;span style=&quot;color: blue;&quot;&gt;&quot;UTF-8&quot;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;?&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;root&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;30&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;id&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;java&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;name&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;price&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;100&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;price&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;lt;/&lt;/span&gt;&lt;span style=&quot;color: maroon;&quot;&gt;root&lt;/span&gt;&lt;span style=&quot;color: blue;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgxQ0Xw3O_lIpaSdF_9ovw8EAzRavV5e4lDiT4xsf3Ra4Hb82kQ253ZLFogI9h_O0C-iug_7oBixK3CsRqCV3Ab0rOwtdEhF_tyhjTKqWrjj_wxaVpZcqbwb_XsiGKSsaDV65ioExocgdjuB5bTnYj0-UsFsDhVcU11byIWc4_QjLB1VlldciIws3zSMw=s1854&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;876&quot; data-original-width=&quot;1854&quot; height=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgxQ0Xw3O_lIpaSdF_9ovw8EAzRavV5e4lDiT4xsf3Ra4Hb82kQ253ZLFogI9h_O0C-iug_7oBixK3CsRqCV3Ab0rOwtdEhF_tyhjTKqWrjj_wxaVpZcqbwb_XsiGKSsaDV65ioExocgdjuB5bTnYj0-UsFsDhVcU11byIWc4_QjLB1VlldciIws3zSMw=w640-h302&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Convert JSON To XML&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.convertjson.com/json-to-xml.htm&quot; target=&quot;_blank&quot;&gt;https://www.convertjson.com/json-to-xml.htm&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/b85cd49e3079de1626cfd8fcfe16009e127427e4/spring-boot-web-requestbody-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/7496057309080678348/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-requestbody.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7496057309080678348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7496057309080678348'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-requestbody.html' title='Spring Boot web 專案 Controller RequestBody ResponseBody annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh0rdd-VJbOcAn5I3zaKkuxxlWxbBI7NmBQBDEo7dB8XreJb-G9dJ2lxQmgUGw2dxaKJVTyS87LLzK7xo8h4jSXuZxfHNxbDuuz6gDRowrceEei0jbY-IFgf7n0-H8oWK1AjlXKlrwS-xSx_9JRvHhFFGalhuwgVfZRSfCEtVDSHI6nTExszecLyUT6Ww=s72-w640-h104-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-984375967092431140</id><published>2022-02-12T13:47:00.009+08:00</published><updated>2022-02-12T14:18:13.664+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring web"/><title type='text'>Spring Boot web 專案 Controller RequestMapping annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、前言&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;RequestMapping 是開發專案常用的annotation。可以說必用到的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;這RequestMapping annotation，是用來對應請求的URI來決定要執行哪個方法。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;如請求 http://localhost:8080/books 而這/books 就是要執行的方向。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;而RequestMapping annotation 就是宣告當請求為/Books時，在這裡執行該程式。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;二、基本使用&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;基本使用@RequestMapping(&quot;/books&quot;) 。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestMapping(&quot;/books&quot;) 等於@RequestMapping(value=&quot;/books&quot;) 也等於 @RequestMapping(path=&quot;/books&quot;)。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;而@RequestMapping(&quot;/books&quot;) 如果你沒設定參數名稱，Spring自動存入value。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;另而查看原碼的value 上方會有@AliasFor的annotation。就是對應該參數方法。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;如RequestMapping 有value() 跟 path()。所以這二個功能會是一樣的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;所以在Spring的框架中，有些annotation，都在 @xxxxx(這裡給值，不帶參數名稱)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;例：@PathVariable(&quot;id&quot;)、@GetMapping(&quot;/books&quot;)等。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;三、@RequestMapping 註解有八個屬性&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;name、value、path、method、consumes、produces、params、headers&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;name &lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;:該RequestMapping 分配一个名稱。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;value、path&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;:指定請求的實際地址，指定的地址可以是URI&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;method&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;:指定請求的method型別， GET、POST、PUT、DELETE等&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;consumes&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;:指定請求提交內容型別（Content-Type），例如application/json, text/html&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;produces&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;:指定返回的內容型別，僅當request請求頭中的(Accept)型別中包含該指定型別才返回&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;params&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;:指定request中必須包含某些參數值是，才讓該方法處理&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;headers&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;:指定request中必須包含某些指定的header值，才能讓該方法處理請求&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖1 在spring-web-5.3.15.jar-&amp;gt;org-&amp;gt;springframework-&amp;gt;web-&amp;gt;bind-&amp;gt;annotation-&amp;gt;RequestMapping.java 可以看到相關屬性及說明&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文使用 spring-web-5.3.15.jar ，找spring-web-你的版本的.jar&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjnZmeJS8O08jXnPyXEsZr4ueOmatZE8GsoRNwiFaQzwc_j-ftHSFzqIt9gciJHgcnkzSajw_LDjJxagRaCJs6295m0RxUm45eIkoccy_5pNInPxu6ioRXs2qGse90KDAZjvtdMNm8JXF39vZ5Phd1NbN977sd4JwcT5uhugqjQ-IZUCodgJK7bmF7aVQ=s1171&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;459&quot; data-original-width=&quot;1171&quot; height=&quot;250&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjnZmeJS8O08jXnPyXEsZr4ueOmatZE8GsoRNwiFaQzwc_j-ftHSFzqIt9gciJHgcnkzSajw_LDjJxagRaCJs6295m0RxUm45eIkoccy_5pNInPxu6ioRXs2qGse90KDAZjvtdMNm8JXF39vZ5Phd1NbN977sd4JwcT5uhugqjQ-IZUCodgJK7bmF7aVQ=w640-h250&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、@RequestMapping 註解屬性 value、path 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;BookController 指定為@RequestMapping(&quot;/books&quot;) ，requestMappingTest1方法指定@RequestMapping(&quot;/test1/{id}&quot;)&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;URI為/books/test1/XXX -&amp;gt;會執行BookController-&amp;gt; requestMappingTest1(id)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：圖2&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi31ZJnWiInoyqlgrdSxCGoJAJMJF4Gcone1rGetWKwAcq-Lbv6hYPuQcXUhom3EfF9e2QH9OG3BfuDWtUxHBZByq5ob7Q8MePhu-xFbksXPImwPknJZTNOg_fBjcys3zkQQnA0zQO2wcDx1rYeHQwlxjdMG9dk-61owwa3b077JBcQayMIU5_SCqMx6g=s1477&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;569&quot; data-original-width=&quot;1477&quot; height=&quot;246&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi31ZJnWiInoyqlgrdSxCGoJAJMJF4Gcone1rGetWKwAcq-Lbv6hYPuQcXUhom3EfF9e2QH9OG3BfuDWtUxHBZByq5ob7Q8MePhu-xFbksXPImwPknJZTNOg_fBjcys3zkQQnA0zQO2wcDx1rYeHQwlxjdMG9dk-61owwa3b077JBcQayMIU5_SCqMx6g=w640-h246&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文使用工具類：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;AnnotationUtils是spring 內鍵的工具類。可以分析Annotation。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;import org.springframework.core.annotation.AnnotationUtils;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;在測試程式取出RequestMapping Annotation 屬性值，查看value、path值是否相同&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：圖3 查看value、path值是否相同&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjC2g2bmD_AdGnQDnPTUmQnLbtjAdWb6oJYAILQ6M1q0dxcso1xCxd7AEMJqvIcjH9u2sgqNdtaZnpynQ_i0RjnuOzhlFNQLYouKtyvoI_YceE-3I40CYO_nVScgKLgaPH6r1DsX4k04gExvNnBEi4Pq1ddWE7eIr-rrlTSkie8qhlHL0_lsceEFJaxFQ=s1855&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;698&quot; data-original-width=&quot;1855&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjC2g2bmD_AdGnQDnPTUmQnLbtjAdWb6oJYAILQ6M1q0dxcso1xCxd7AEMJqvIcjH9u2sgqNdtaZnpynQ_i0RjnuOzhlFNQLYouKtyvoI_YceE-3I40CYO_nVScgKLgaPH6r1DsX4k04gExvNnBEi4Pq1ddWE7eIr-rrlTSkie8qhlHL0_lsceEFJaxFQ=w640-h240&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;五、@RequestMapping 註解屬性 method 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試： requestMappingTest2 方法上 設定使用 GET 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：圖4&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg4HXkIGaQUZGd-rbCOI30Bq-djQUlR3hq-u6s_xaEl5DqV1u0AsEnhPTDqVp0CELoo45bPxiu0os3z0hjImj-DiDsGUCjjD5kd00miwBBwmTUvm6r5hVn1OWLElX3ZmUx7F21itxG_SkLvbO7EsbGc0HNdWf9EapsIYNDEiTJrdOQn9x-UudK9rL5Y4g=s1386&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;180&quot; data-original-width=&quot;1386&quot; height=&quot;84&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg4HXkIGaQUZGd-rbCOI30Bq-djQUlR3hq-u6s_xaEl5DqV1u0AsEnhPTDqVp0CELoo45bPxiu0os3z0hjImj-DiDsGUCjjD5kd00miwBBwmTUvm6r5hVn1OWLElX3ZmUx7F21itxG_SkLvbO7EsbGc0HNdWf9EapsIYNDEiTJrdOQn9x-UudK9rL5Y4g=w640-h84&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：圖5 使用GET 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgc3pC5WFwGj1d1XBB3U41Y1F92DadiZio5Fyd7HdG8DWrZAILoLW-SW5S-_Ia8LHAAxMFcrgh1fDymwG7nnm7zSKzMu49RyHEAatReJ10TRUTiB7_2hSaQ1UXlLCKoYsRSPigtC3P6jkmdomnWhYZ_IGUJOghZDYXuGfzdEoq69f5huVSvEHcRN4LpdA=s1318&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;591&quot; data-original-width=&quot;1318&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgc3pC5WFwGj1d1XBB3U41Y1F92DadiZio5Fyd7HdG8DWrZAILoLW-SW5S-_Ia8LHAAxMFcrgh1fDymwG7nnm7zSKzMu49RyHEAatReJ10TRUTiB7_2hSaQ1UXlLCKoYsRSPigtC3P6jkmdomnWhYZ_IGUJOghZDYXuGfzdEoq69f5huVSvEHcRN4LpdA=w640-h286&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; 圖6 其它不能通行，測試POST 不能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgG525By9BnZeH_hu2AtrGL6pmZfCfcqFhKMe81RyQMAzhmex7ArJt9TiQpFqUzx33eWDc4dLpdI9ku0VQhO24kQM1ad7efat6omNlYV9KxpYDLfnV7d71sYD8FEuIm_Iy7ZPgCgHtksUnzshX8P23_3uFFXTOLaYclAatClai2zrYO1H0cN9FySAIqgw=s1241&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;613&quot; data-original-width=&quot;1241&quot; height=&quot;316&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgG525By9BnZeH_hu2AtrGL6pmZfCfcqFhKMe81RyQMAzhmex7ArJt9TiQpFqUzx33eWDc4dLpdI9ku0VQhO24kQM1ad7efat6omNlYV9KxpYDLfnV7d71sYD8FEuIm_Iy7ZPgCgHtksUnzshX8P23_3uFFXTOLaYclAatClai2zrYO1H0cN9FySAIqgw=w640-h316&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;六、@RequestMapping 註解屬性 consumes 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試：requestMappingTest3 方法上 設定使用 POST 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;且只收JSON格式文件。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;consumes 用在將 request Content-Type設定請求的型別。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;用法：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;consumes = &quot;text/plain&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;consumes = {&quot;text/plain&quot;, &quot;application/*&quot;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;consumes = MediaType.TEXT_PLAIN_VALUE&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：圖7 consumes 設為“application/json”型別的請求。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjU5_d57TjxYmHiqBi-OnUoLQw0RtdZw0Aj4obXGHGPVcyWD4WwCET9YK_knxONvxA6gM1USgqGW2NzDLEwkiqFjkjaItMrxSlmpNcyjqAgmk60hI0ZxXcuWXLTtc3EOc4FKewBdlrZRkapLumJ1M_AE1nu8X-4qiywMI9bRd1Qbjr5fwzH2dVTHHJ10g=s930&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;239&quot; data-original-width=&quot;930&quot; height=&quot;164&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjU5_d57TjxYmHiqBi-OnUoLQw0RtdZw0Aj4obXGHGPVcyWD4WwCET9YK_knxONvxA6gM1USgqGW2NzDLEwkiqFjkjaItMrxSlmpNcyjqAgmk60hI0ZxXcuWXLTtc3EOc4FKewBdlrZRkapLumJ1M_AE1nu8X-4qiywMI9bRd1Qbjr5fwzH2dVTHHJ10g=w640-h164&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：圖8 請求時使用application/json ，結果可以成功回應&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgQwPnMPQdjzLRyeyUDek0gLq6BTID42CzpgXndcU3sevWh6Xul4EyesKz0c4vkfzLg_8LFcmmCh-zf8q0TgDfKXXhnlolNRtiUJDTOo_BLWY-UtHf9i86qJy7_cXcXBWkhkFvMVbAIBfEuSNpF4Yj3FkkioF1oz5dCHrh10fQSDsL1lwgv1M_yuLE-0w=s1861&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;829&quot; data-original-width=&quot;1861&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgQwPnMPQdjzLRyeyUDek0gLq6BTID42CzpgXndcU3sevWh6Xul4EyesKz0c4vkfzLg_8LFcmmCh-zf8q0TgDfKXXhnlolNRtiUJDTOo_BLWY-UtHf9i86qJy7_cXcXBWkhkFvMVbAIBfEuSNpF4Yj3FkkioF1oz5dCHrh10fQSDsL1lwgv1M_yuLE-0w=w640-h286&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; 圖9 請求時使用multipart/form-data ，結果回應415&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiHDYu1_vwJZmxRGBhEGBZGrPHRUrjQ40JR9Bv2k5Ek48Jn8THqSvJwAJC8HqbjsVpmdyjJCJlmmpAYCrjLBOQYSYn3BnaugM4D_nbBjt207B-jPKctR3Dl6nGZCpvBuU5DIhsgWkngXq3s-GCJardgLQC_cUMp6h9vO6Fg-9PydfYizrQF8HdTSfFAYQ=s1847&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;885&quot; data-original-width=&quot;1847&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiHDYu1_vwJZmxRGBhEGBZGrPHRUrjQ40JR9Bv2k5Ek48Jn8THqSvJwAJC8HqbjsVpmdyjJCJlmmpAYCrjLBOQYSYn3BnaugM4D_nbBjt207B-jPKctR3Dl6nGZCpvBuU5DIhsgWkngXq3s-GCJardgLQC_cUMp6h9vO6Fg-9PydfYizrQF8HdTSfFAYQ=w640-h306&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;七、@RequestMapping 註解屬性 produces 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試：requestMappingTest4 方法上 設定使用 POST 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;且只收JSON格式文件，回應也是JSON格式文件。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;produces 設定Headers 裡的Accept屬性(能夠接受的回應內容類型)。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;用法：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;produces = &quot;text/plain&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;produces = {&quot;text/plain&quot;, &quot;application/*&quot;}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;produces = MediaType.TEXT_PLAIN_VALUE&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;produces = &quot;text/plain;charset=UTF-8&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;produces=&quot;application/json;charset=UTF-8&quot;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;application/json&amp;nbsp; 設定接收/回應為JSON格式文件&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;charset 文件編碼為UTF-8&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖10&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjpwzGegiSnZR2kZX_cgtCtcnQtnSUYc5qjx2p8-bfUbSyu5GIItZ5AScyglEZNVjsRKBPJrmrUuRDi8lgMnXsFEq_1C_bWg5XIYpn_fZ7SwSb83BWT52u_ZykyxGmrsLS6dlC8GpxzY9Rc4njfHlpuZnOmOxleiQgpSWgLRFBYbKyOcM9Jam9Qhl6Plg=s975&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;128&quot; data-original-width=&quot;975&quot; height=&quot;84&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjpwzGegiSnZR2kZX_cgtCtcnQtnSUYc5qjx2p8-bfUbSyu5GIItZ5AScyglEZNVjsRKBPJrmrUuRDi8lgMnXsFEq_1C_bWg5XIYpn_fZ7SwSb83BWT52u_ZykyxGmrsLS6dlC8GpxzY9Rc4njfHlpuZnOmOxleiQgpSWgLRFBYbKyOcM9Jam9Qhl6Plg=w640-h84&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：圖11 請求時使用application/json ，結果可以成功回應json&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgj1P4k-09X6zoWg_6P1VA2RZkPupeKOKDVE0W4C8P9Yf44dP8rZAdGIjeJqfXbis4Gy22-HCYu9N9JUcWg9U8g13Vowu7xsOTR-WBqaRHzbQpb6t8prUBGCQPl4XtKD0jT4mUs4UqyqGTpI_8YGAdnowXaUwW5Acz3xn2mAmnn3gjt8FfqHaLb25rHng=s1870&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;824&quot; data-original-width=&quot;1870&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgj1P4k-09X6zoWg_6P1VA2RZkPupeKOKDVE0W4C8P9Yf44dP8rZAdGIjeJqfXbis4Gy22-HCYu9N9JUcWg9U8g13Vowu7xsOTR-WBqaRHzbQpb6t8prUBGCQPl4XtKD0jT4mUs4UqyqGTpI_8YGAdnowXaUwW5Acz3xn2mAmnn3gjt8FfqHaLb25rHng=w640-h282&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; 圖12 查看回傳的Headers&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgmtN91gKJ1aTxkmilKcTm2mgEXTrWlEpq6iWb34KPQ_2M0hfzKLRigjAHsMJ1aR62hvgEpfpziJiUbti0vbm9D9S-nZmHjNGcqIvs2XUtD9QxsxRzXD_m42kx8pgBSPDmbj3DoeyBfAnB5_NXwmdEcRpM2oXjOj0apHj18HpCFEUG7pDMbGSGhWm2Gjw=s1859&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;848&quot; data-original-width=&quot;1859&quot; height=&quot;292&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgmtN91gKJ1aTxkmilKcTm2mgEXTrWlEpq6iWb34KPQ_2M0hfzKLRigjAHsMJ1aR62hvgEpfpziJiUbti0vbm9D9S-nZmHjNGcqIvs2XUtD9QxsxRzXD_m42kx8pgBSPDmbj3DoeyBfAnB5_NXwmdEcRpM2oXjOj0apHj18HpCFEUG7pDMbGSGhWm2Gjw=w640-h292&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; 圖13 請求時使用multipart/form-data ，結果回應415及查看回傳的Headers&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh3xPM3RZ7174-Sgp78tJj5XB7Ic8VlXm1V4JNN0JHQcozyb1huTz0sVPzt6LOCV3E-d-gZ8xmxcen45lNBYC3uLFd7JlZB3MW3Oyv_j4nqrgAlpL5usSkTKklD5_6m4f3lw4OFr1teD-VOyzoEs_eJk0gSmMQx3m6dKoWSLMXxF4v-A1ROi84ERfw9WQ=s1858&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;890&quot; data-original-width=&quot;1858&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh3xPM3RZ7174-Sgp78tJj5XB7Ic8VlXm1V4JNN0JHQcozyb1huTz0sVPzt6LOCV3E-d-gZ8xmxcen45lNBYC3uLFd7JlZB3MW3Oyv_j4nqrgAlpL5usSkTKklD5_6m4f3lw4OFr1teD-VOyzoEs_eJk0gSmMQx3m6dKoWSLMXxF4v-A1ROi84ERfw9WQ=w640-h306&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;八、@RequestMapping 註解屬性 params 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試：&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;requestMappingTest5&amp;nbsp; 方法上設定GET ，且需要有傳入參數name=java 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;路徑為&quot;/test5/{id}&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;用法： params 是用在限定傳入參數用的，要有該參數及值才會回應請求。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖14&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjKpX5qytHAcOr30kVLSA59GKoGZzSGsFhAJJ3KsYcE91BqdYpV8Xt1Y5zDAQbBBzrQJQkEH0ou89t6b6p3inlR40J1QGtkJ3B20X7FT9tX2QWttVrjK-iOwoBRZts_i9hSn-NvVZ6DXOzi40wbs0f3FkKjkg7pRACAmCXrw9XrnDuTe-dinaLyd-iVoQ=s1302&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;199&quot; data-original-width=&quot;1302&quot; height=&quot;98&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjKpX5qytHAcOr30kVLSA59GKoGZzSGsFhAJJ3KsYcE91BqdYpV8Xt1Y5zDAQbBBzrQJQkEH0ou89t6b6p3inlR40J1QGtkJ3B20X7FT9tX2QWttVrjK-iOwoBRZts_i9hSn-NvVZ6DXOzi40wbs0f3FkKjkg7pRACAmCXrw9XrnDuTe-dinaLyd-iVoQ=w640-h98&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖15 在請求Params 中帶入name=java。回應成功。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik-d4TfW4b5PC0fVhk3a0pc5yQyGD3MhMmgUGDIkhDvkHRhcm_MRMFM3SBsGFTdX3kgz5ezfNMaLtoZkDilvGszubeniquPtVx7jiG0nYZdkzK2d4-d-vZgK6NDDvi57Opthw2sV0J0rmz7b7MQNTt0AFNFI34rtWn2qR7ycwYZ1MtfC-MkvdYAkcgzA=s1535&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;710&quot; data-original-width=&quot;1535&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEik-d4TfW4b5PC0fVhk3a0pc5yQyGD3MhMmgUGDIkhDvkHRhcm_MRMFM3SBsGFTdX3kgz5ezfNMaLtoZkDilvGszubeniquPtVx7jiG0nYZdkzK2d4-d-vZgK6NDDvi57Opthw2sV0J0rmz7b7MQNTt0AFNFI34rtWn2qR7ycwYZ1MtfC-MkvdYAkcgzA=w640-h296&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖16 在請求Params 為空，回應失敗&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiXVa5XHYPubxiIBl3W1rcznvmnjs3v27iVq5g9bk0DH5KWjbj2FfguULYHwdTZEgvYJydILjyT-4Z2UqoXnFydp0D33yTZxSDb7IsOuGlrlimVskj2Md6MyzJCIIgBt8qGMyW50FX7u0KWg3hhuIQDV-YRSXcgP8ttV6LIzw_6dwAzGiP1Zusj4p2-QQ=s1863&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;866&quot; data-original-width=&quot;1863&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiXVa5XHYPubxiIBl3W1rcznvmnjs3v27iVq5g9bk0DH5KWjbj2FfguULYHwdTZEgvYJydILjyT-4Z2UqoXnFydp0D33yTZxSDb7IsOuGlrlimVskj2Md6MyzJCIIgBt8qGMyW50FX7u0KWg3hhuIQDV-YRSXcgP8ttV6LIzw_6dwAzGiP1Zusj4p2-QQ=w640-h298&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;九、@RequestMapping 註解屬性 headers 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試：requestMappingTest6 方法上 設定使用 POST 才能通行。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;且只收JSON格式文件，回應也是JSON格式文件。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;用法：headers 設定，將headers所有的屬型都可設定。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;HTTP頭欄位參考&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;a href=&quot;https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5&quot; target=&quot;_blank&quot;&gt;https://zh.wikipedia.org/wiki/HTTP%E5%A4%B4%E5%AD%97%E6%AE%B5&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖17&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioNljRbggxqtiwnPaYhjjNu_8dnCCsjrFa74mLU1foncO97IK2XxX3HCCVZJXUwTUAFfARjM0cGCvqa3hBs6fQR8o-xQezy_LMEZm4rOIP59IWcfISH98uApAJ5or93Dqibb7lyIGHGtMYnMh0AWlAnxhKExYSWwxyoQEmAoSeAt06hX5Ed6zHeIxjYw=s1652&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;220&quot; data-original-width=&quot;1652&quot; height=&quot;86&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEioNljRbggxqtiwnPaYhjjNu_8dnCCsjrFa74mLU1foncO97IK2XxX3HCCVZJXUwTUAFfARjM0cGCvqa3hBs6fQR8o-xQezy_LMEZm4rOIP59IWcfISH98uApAJ5or93Dqibb7lyIGHGtMYnMh0AWlAnxhKExYSWwxyoQEmAoSeAt06hX5Ed6zHeIxjYw=w640-h86&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：圖18 請求時使用application/json ，結果可以成功回應json&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEinMyrAXesBBu85wIflB5ZmbHU9CI0USCHxPlaOJEEEJJOK6pK1gV5owVgDzXp9arl8lbS4SL-ZQHslaeORKHhYEFKj2uobcWXnmIYuygB1ex1mBlumpJr4QOgbSLgFPb_7i7QN9G4j5t40nCS6ad75zlD-BWIUCy59R_jEbnzW97nnKCLDxxnIxdcAnw=s1875&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;871&quot; data-original-width=&quot;1875&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEinMyrAXesBBu85wIflB5ZmbHU9CI0USCHxPlaOJEEEJJOK6pK1gV5owVgDzXp9arl8lbS4SL-ZQHslaeORKHhYEFKj2uobcWXnmIYuygB1ex1mBlumpJr4QOgbSLgFPb_7i7QN9G4j5t40nCS6ad75zlD-BWIUCy59R_jEbnzW97nnKCLDxxnIxdcAnw=w640-h298&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp; 圖19 請求時使用multipart/form-data ，結果回應415及查看回傳的Headers&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgTDBDuig7ErKObYkdU4LM0RD0c0kd185TuLSBbj5LFqVyFigNJCOHh-XD-RhgXkVIhPjfwJwcGBWKjd9Mtx851DmWxHSu5xvpA0zBGZHTofR5QRpYuy0GKrsqUJl6bS5ICl90ff2-W1jwlBvECTbx3ZbB86f7Qe3bN7edmAl4ehNRnzlBJoT1HnvR25A=s1877&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;864&quot; data-original-width=&quot;1877&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgTDBDuig7ErKObYkdU4LM0RD0c0kd185TuLSBbj5LFqVyFigNJCOHh-XD-RhgXkVIhPjfwJwcGBWKjd9Mtx851DmWxHSu5xvpA0zBGZHTofR5QRpYuy0GKrsqUJl6bS5ICl90ff2-W1jwlBvECTbx3ZbB86f7Qe3bN7edmAl4ehNRnzlBJoT1HnvR25A=w640-h294&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;十、@RequestMapping 註解屬性 name 程式測試及說明&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試： 將BookController 設name=dc&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;requestMappingTest10方法 name=test10&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;用法：@RequestMapping(value=&quot;/books&quot;,name=&quot;bc&quot;)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖20&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgum6BNY0Vdh3lfh-5s5bnC3CS1qHCalCOi1UELdj2KQ6Etz0TYQpoRYS4uqntXSJgzb1fgzqbIs_GnFYw5crgYKqjny3glMCFEEP355s0jSvDTyPXwmgyF_dyWAs-LuNgkiBL-inuvldPAOZyje6UZy3drkiuH1TnObGt3hposRqEzHkXYnw0lWelOow=s1043&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;229&quot; data-original-width=&quot;1043&quot; height=&quot;140&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgum6BNY0Vdh3lfh-5s5bnC3CS1qHCalCOi1UELdj2KQ6Etz0TYQpoRYS4uqntXSJgzb1fgzqbIs_GnFYw5crgYKqjny3glMCFEEP355s0jSvDTyPXwmgyF_dyWAs-LuNgkiBL-inuvldPAOZyje6UZy3drkiuH1TnObGt3hposRqEzHkXYnw0lWelOow=w640-h140&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試：需要使用jsp ，spring tags庫mvcUrl函式&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖21 測試jsp&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEglMFE2Ufq9xMYoXF_IK3sJRXF-eH0RyievmuxKbn38LUlVL4jI-eI_VelbiWsHkeUJcDxlV_e4OAtDYpKmAJyOJJb4eWV7lGP_UI8ILPsk6nUPfdQ6yUYijJSsvmvT5YvmS0w80FQI8KBB73lk42zmJQNN5CTOHm4HG8-0fiSbEI6dTOse7GXVkY3cgA=s1172&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;488&quot; data-original-width=&quot;1172&quot; height=&quot;266&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEglMFE2Ufq9xMYoXF_IK3sJRXF-eH0RyievmuxKbn38LUlVL4jI-eI_VelbiWsHkeUJcDxlV_e4OAtDYpKmAJyOJJb4eWV7lGP_UI8ILPsk6nUPfdQ6yUYijJSsvmvT5YvmS0w80FQI8KBB73lk42zmJQNN5CTOHm4HG8-0fiSbEI6dTOse7GXVkY3cgA=w640-h266&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖22 轉為html頁面的結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj41ahk88eBXOMs3mdgOfpFQ8q2O6L0_u0N5aAKwH9ZVRD0x_CD9XC9Bbt9wv9Bwhef7UqPX_UULEdh8f7bHDmZN--3jR5iE3m0aQ6Yt3Wx0V_uOy2y5B1l-FZxSHEx9BWD96B7Uatd_uovnzu2ZXAUWGYu7M8jdK-1YNo5Pe1NWqpbl7kQOfWPEnnsoA=s1192&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;442&quot; data-original-width=&quot;1192&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj41ahk88eBXOMs3mdgOfpFQ8q2O6L0_u0N5aAKwH9ZVRD0x_CD9XC9Bbt9wv9Bwhef7UqPX_UULEdh8f7bHDmZN--3jR5iE3m0aQ6Yt3Wx0V_uOy2y5B1l-FZxSHEx9BWD96B7Uatd_uovnzu2ZXAUWGYu7M8jdK-1YNo5Pe1NWqpbl7kQOfWPEnnsoA=w640-h238&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖23 點入測試url 的測試結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiE4hm0jzazsgCRhuCA64lC5GxSRYf36WQG9PD5WPBtVGD72DZc0u64-SNZSfo0LkHlvW3XDdfCMacczgUDC4E9isRPgTaxlo6eKWc5EdYPA7r_XJ5ct7Rrt9OVHtt7euR5lQIb-e9ByQRDV7QjuWNf3pNQarcgn8e6g7DI8WBdliYhpwPtRQdG6PyYAA=s602&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;112&quot; data-original-width=&quot;602&quot; height=&quot;120&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiE4hm0jzazsgCRhuCA64lC5GxSRYf36WQG9PD5WPBtVGD72DZc0u64-SNZSfo0LkHlvW3XDdfCMacczgUDC4E9isRPgTaxlo6eKWc5EdYPA7r_XJ5ct7Rrt9OVHtt7euR5lQIb-e9ByQRDV7QjuWNf3pNQarcgn8e6g7DI8WBdliYhpwPtRQdG6PyYAA=w640-h120&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;測試2：如果不設定name時，一樣可以使用tags庫mvcUrl函式取到&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;而類的name 預設為 類名中的大寫字母&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;			&lt;/span&gt;例：Book2Controller 的name = BC&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;				&lt;/span&gt;方法的name 就是方法名稱&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖24 如程式預設使用 BC#requestMappingTest10&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmazPBZSG3SzhUl4ycwlX8zqqqyFlD1lWdFQhI0iWbbQkNurdh0kIuORMJ8gY1k3bkpRBdrJxock0hlZKRlvADzUZneUTGv8RDdK21734vMSWJKtBm51tZlpSm1Lp1pFkuK358PSX93MhUykgIpgCfwEl6NRMgZ8ZpOYrXv1qvkZDgHt2ubsxtv9hpPw=s1039&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;341&quot; data-original-width=&quot;1039&quot; height=&quot;210&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmazPBZSG3SzhUl4ycwlX8zqqqyFlD1lWdFQhI0iWbbQkNurdh0kIuORMJ8gY1k3bkpRBdrJxock0hlZKRlvADzUZneUTGv8RDdK21734vMSWJKtBm51tZlpSm1Lp1pFkuK358PSX93MhUykgIpgCfwEl6NRMgZ8ZpOYrXv1qvkZDgHt2ubsxtv9hpPw=w640-h210&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖25 測試jsp&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhqzDdXEM6BXtyvCwsOWhXh1XGpeM1PUFlRApJvVj_gDktT-sHENOBVfQR0gjctXPaReTfR-Pc750I3BxvdTK8OiQDTBvIMh9kzSP_KwgStPE1N_NjWyFKJxhRdCBNuVrJLr8eTGYoMvzH8IvlRxiB8kEpKQklTQND6F4BWpZ_dcN6UMVhl4tx36C4-jA=s1087&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;642&quot; data-original-width=&quot;1087&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhqzDdXEM6BXtyvCwsOWhXh1XGpeM1PUFlRApJvVj_gDktT-sHENOBVfQR0gjctXPaReTfR-Pc750I3BxvdTK8OiQDTBvIMh9kzSP_KwgStPE1N_NjWyFKJxhRdCBNuVrJLr8eTGYoMvzH8IvlRxiB8kEpKQklTQND6F4BWpZ_dcN6UMVhl4tx36C4-jA=w640-h378&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖26 轉為html頁面的結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhBZ29CItelFkSNkCevzrSf8eBzWTO5piaUZdthQSezeBAY0a1_Rub5VAQ8UCfomSTFKWBfk9qjSLy9hCDJdn_KEWghwMc3D5BlPHgOoXIKPVOiFUIi4SLHMjoYlzqarfjp8BhzP9KeUQ2PLxff1qxG1FePAlOtgyL16y3-9HLI5ir1ImyHO2X76gnzwQ=s1240&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;499&quot; data-original-width=&quot;1240&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhBZ29CItelFkSNkCevzrSf8eBzWTO5piaUZdthQSezeBAY0a1_Rub5VAQ8UCfomSTFKWBfk9qjSLy9hCDJdn_KEWghwMc3D5BlPHgOoXIKPVOiFUIi4SLHMjoYlzqarfjp8BhzP9KeUQ2PLxff1qxG1FePAlOtgyL16y3-9HLI5ir1ImyHO2X76gnzwQ=w640-h258&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;圖27 點入測試url 的測試結果&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiM8sFlVNZejz53yI2lGEOpXWCBAbAxZd54Pjv0ytj8O99NbMzvJ_Sft5iJFxRPJOYbyQ3eCNSPxsnB32dhJD3LBBE-fHTBx_hwPW5bh3y7po_Q1HI2f0nm1hEpJAx3Vi84zmVP9r2q7m-aAq0m4fw1FIh153zF_mhnog-y4NNtscI28c-eogw_neywKg=s743&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;192&quot; data-original-width=&quot;743&quot; height=&quot;166&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiM8sFlVNZejz53yI2lGEOpXWCBAbAxZd54Pjv0ytj8O99NbMzvJ_Sft5iJFxRPJOYbyQ3eCNSPxsnB32dhJD3LBBE-fHTBx_hwPW5bh3y7po_Q1HI2f0nm1hEpJAx3Vi84zmVP9r2q7m-aAq0m4fw1FIh153zF_mhnog-y4NNtscI28c-eogw_neywKg=w640-h166&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/0ff5593cbc095fbded37adc13ace9b3005f707be/spring-boot-web-requestmapping-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;		&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/984375967092431140/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/984375967092431140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/984375967092431140'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller.html' title='Spring Boot web 專案 Controller RequestMapping annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjnZmeJS8O08jXnPyXEsZr4ueOmatZE8GsoRNwiFaQzwc_j-ftHSFzqIt9gciJHgcnkzSajw_LDjJxagRaCJs6295m0RxUm45eIkoccy_5pNInPxu6ioRXs2qGse90KDAZjvtdMNm8JXF39vZ5Phd1NbN977sd4JwcT5uhugqjQ-IZUCodgJK7bmF7aVQ=s72-w640-h250-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-5891772512417676058</id><published>2022-02-11T23:33:00.000+08:00</published><updated>2022-02-11T23:33:20.659+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring MVC"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring web"/><title type='text'>Spring Boot web 專案 Controller RequestParam 和 PathVariable annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@RequestParam 和 @PathVariable 註解是用於從request中接收請求的，兩個都可以接收引數，關鍵點不同的是@RequestParam 是從request裡面拿取值，&lt;/div&gt;&lt;div&gt;而 @PathVariable 是從一個URI模板裡面來填充&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、@PathVariable 的使用&lt;/div&gt;&lt;div&gt;PathVariable 有三個參數方法可用&lt;/div&gt;&lt;div&gt;name-要绑定到的路徑變量的名稱&lt;/div&gt;&lt;div&gt;required-指示是否為必需參數&lt;/div&gt;&lt;div&gt;value-名稱的别名(做用跟name一樣)&lt;/div&gt;&lt;div&gt;圖1&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiWxWzlYeOt2DBcErwKtc-YPyok3kqNfJObKFzPXb5VsRnsx33jPHy7KdmTiJP4pIRpgLNfwebj2akmeawii1mDcRS2xaz7x6M16zC4ZdRNErpejCCIsISTsfMqNsZxBHfaxSipSaR40ytuauX8SxvRoIr9JowuiTx0iFNECpqBuvR0AxfkWA6QvJu_tQ=s1352&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;764&quot; data-original-width=&quot;1352&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiWxWzlYeOt2DBcErwKtc-YPyok3kqNfJObKFzPXb5VsRnsx33jPHy7KdmTiJP4pIRpgLNfwebj2akmeawii1mDcRS2xaz7x6M16zC4ZdRNErpejCCIsISTsfMqNsZxBHfaxSipSaR40ytuauX8SxvRoIr9JowuiTx0iFNECpqBuvR0AxfkWA6QvJu_tQ=w640-h362&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、@PathVariable的參數&amp;nbsp; name 及 value測試&lt;/div&gt;&lt;div&gt;pathVariableTest1 :&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@PathVariable不指定name 及 value，使用預設的參數名稱。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;{id}的id ，需要跟String id的id 一樣。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test1/{id}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest1( @PathVariable String id) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;pathVariableTest2 :&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@PathVariable(name=&quot;id&quot;)指定name ,對應到Mapping的{id}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test2/{id}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest2( @PathVariable(name=&quot;id&quot;) String bookId) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;pathVariableTest3 :&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@PathVariable(value=&quot;id&quot;)指定value ,對應到Mapping的{id}&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test3/{id}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest3( @PathVariable(value=&quot;id&quot;) String bookId) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhh5HlbqfHAERLP6U3gFA2xoeekitm-tecf4ljGH5jgWF4tglLAss04hitxIlhYJ4R_pFGgwpa3Gf_MK8i3G87zHERVhWRUKUTVyKbnRHj1xD6dx-U3LwQ-4_OpW0LKtEjLfMLJ11XpRQrFHwembVcIYdiKmu7qkrUrNeSKb2YQ_eGHv00htVJzEsW0Sw=s1355&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;657&quot; data-original-width=&quot;1355&quot; height=&quot;310&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhh5HlbqfHAERLP6U3gFA2xoeekitm-tecf4ljGH5jgWF4tglLAss04hitxIlhYJ4R_pFGgwpa3Gf_MK8i3G87zHERVhWRUKUTVyKbnRHj1xD6dx-U3LwQ-4_OpW0LKtEjLfMLJ11XpRQrFHwembVcIYdiKmu7qkrUrNeSKb2YQ_eGHv00htVJzEsW0Sw=w640-h310&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;測試 pathVariableTest1&lt;/div&gt;&lt;div&gt;http://localhost:8080/books/test1/123&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjpAGslW2LMq8g1x1VjjWGQZDxvkk5brMIRtMqAUsqIedSyFbAf_ASf50c4QaadnjgPvff_U8sKYpLc18SwihMEfFYKw8uQUR9FOAP4Wvs_jd9e-YmSc0Mpkmjhl12r4CtmyXGhmXKTuUMCGZ07XPPrBK91yJpbVCFLgTc99N_BpKjf4_82o2hsh3LbVQ=s919&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;556&quot; data-original-width=&quot;919&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjpAGslW2LMq8g1x1VjjWGQZDxvkk5brMIRtMqAUsqIedSyFbAf_ASf50c4QaadnjgPvff_U8sKYpLc18SwihMEfFYKw8uQUR9FOAP4Wvs_jd9e-YmSc0Mpkmjhl12r4CtmyXGhmXKTuUMCGZ07XPPrBK91yJpbVCFLgTc99N_BpKjf4_82o2hsh3LbVQ=w640-h388&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;測試 pathVariableTest3&lt;/div&gt;&lt;div&gt;http://localhost:8080/books/test2/123&lt;/div&gt;&lt;div&gt;圖4&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPb5ZPgNhWzTuKLrLbosc9ZgvdQWg-P1x2J1RpJ_YWeOfG5Y1VLtLNpklhE2C63K1rvtEfMgIcGr61lMf3NsD9p7aZTxaD_Fdqs4U4Z_bf0hVJKAh4zbZzuZpzs2FUMXmeR5wIGRHJ7dT75TbfpmTAJ-hPn3iOMOX5BqFWEeOydDLJ2Wfe7r9sRdSajw=s905&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;508&quot; data-original-width=&quot;905&quot; height=&quot;360&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPb5ZPgNhWzTuKLrLbosc9ZgvdQWg-P1x2J1RpJ_YWeOfG5Y1VLtLNpklhE2C63K1rvtEfMgIcGr61lMf3NsD9p7aZTxaD_Fdqs4U4Z_bf0hVJKAh4zbZzuZpzs2FUMXmeR5wIGRHJ7dT75TbfpmTAJ-hPn3iOMOX5BqFWEeOydDLJ2Wfe7r9sRdSajw=w640-h360&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;測試 pathVariableTest3&lt;/div&gt;&lt;div&gt;http://localhost:8080/books/test3/123&lt;/div&gt;&lt;div&gt;圖5&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3agLAnQkN5uzOWG5SW32UpFYpDin6bU0pKsfKlsRvt4yELWpz7sA2wGfbp8sJrBMBrQ7kF7tMJQ5nn5Eik2hexk7Pnu274o8YS3Uqb1EF0jx3PZP1JkPe98lTrXNukbrf64oLwarJM5noZXItE8w8E-4UHbWZMsXd6k3YJQRaOVmF2kD8Hu56MSOJhw=s913&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;529&quot; data-original-width=&quot;913&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg3agLAnQkN5uzOWG5SW32UpFYpDin6bU0pKsfKlsRvt4yELWpz7sA2wGfbp8sJrBMBrQ7kF7tMJQ5nn5Eik2hexk7Pnu274o8YS3Uqb1EF0jx3PZP1JkPe98lTrXNukbrf64oLwarJM5noZXItE8w8E-4UHbWZMsXd6k3YJQRaOVmF2kD8Hu56MSOJhw=w640-h370&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、 @PathVariable的參數&amp;nbsp; required 設定參數是否為必需&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;required 不設定預設為true&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;true為必需的，false則非必需的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文測試 name 為必需， id 非必需的&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;案例如下：&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; @GetMapping(value={&quot;/test4/{name}&quot;,&quot;/test4/{name}/{id}&quot;})&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest4(@PathVariable String name, @PathVariable(required = false) String id) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖6&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEheNUCLaLs2E3JuL-fHPMArHJ1YLYaQXD02iiEh3PYvrWRmKUqICkZx3Gen2cwyiZ06TGFcQKKwsAb8i_ChE4gidOOO1eUScTEAbPoK74J-APIv6qJ30NqR6bLVI-mAUb5z-nuDDAv6KNtBl4YMSyQF3aPq2npgXeT73p0QO8YETAEsklAIumV2sKpuig=s1058&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;168&quot; data-original-width=&quot;1058&quot; height=&quot;102&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEheNUCLaLs2E3JuL-fHPMArHJ1YLYaQXD02iiEh3PYvrWRmKUqICkZx3Gen2cwyiZ06TGFcQKKwsAb8i_ChE4gidOOO1eUScTEAbPoK74J-APIv6qJ30NqR6bLVI-mAUb5z-nuDDAv6KNtBl4YMSyQF3aPq2npgXeT73p0QO8YETAEsklAIumV2sKpuig=w640-h102&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;圖7 測試 pathVariableTest4 http://localhost:8080/books/test4/java&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEia6bg21C-N5zbiFfB_fHCD3gqF62-8iKgNlKqovx9bS91UXmi0dyVTYmO-RAQiMYPCEUumbDOLczhRJu65s4PTkGJ3TG-1sQHjtxIFdD-Z8M5x-DMjEK1At2lPBYKz_7iG-DjIcgZZ3m7AcCNuD79cD-wdEhaA50pbTOYfx9Y-fJsd8GEHL8GzWN8XNw=s918&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;530&quot; data-original-width=&quot;918&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEia6bg21C-N5zbiFfB_fHCD3gqF62-8iKgNlKqovx9bS91UXmi0dyVTYmO-RAQiMYPCEUumbDOLczhRJu65s4PTkGJ3TG-1sQHjtxIFdD-Z8M5x-DMjEK1At2lPBYKz_7iG-DjIcgZZ3m7AcCNuD79cD-wdEhaA50pbTOYfx9Y-fJsd8GEHL8GzWN8XNw=w640-h370&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖8 測試 pathVariableTest4 http://localhost:8080/books/test4/java/123456&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg1pDUbkPP6353tat0bg17Zw6mYnM-qTQPwozVDEM1rPpr_BePbGMnqeVr9ONJJZOMxa2VuqsmdnkocF5Ec0T1Kc0eceWvMWdlXG0S6PdLAQwtfdQQaCQaFgItrA9kIVGzfZthNZ58MR4lXjy0fC9URxFlgDM1FOUcmlyHCuE4cPf55eGNSJpGCulTTXA=s931&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;480&quot; data-original-width=&quot;931&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg1pDUbkPP6353tat0bg17Zw6mYnM-qTQPwozVDEM1rPpr_BePbGMnqeVr9ONJJZOMxa2VuqsmdnkocF5Ec0T1Kc0eceWvMWdlXG0S6PdLAQwtfdQQaCQaFgItrA9kIVGzfZthNZ58MR4lXjy0fC9URxFlgDM1FOUcmlyHCuE4cPf55eGNSJpGCulTTXA=w640-h330&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、 @PathVariable的多參數應用&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;可以多參數，本文測試二個測試。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;可用符號分開如：/test5/{id}-{name}-{price}&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test5/{id}-{name}-{price}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest5( @PathVariable(value=&quot;id&quot;) String bookId,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathVariable String name,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathVariable String price) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;大多專案會使用如下：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test6/{id}/{name}/{price}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest6( @PathVariable(value=&quot;id&quot;) String bookId,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathVariable String name,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathVariable String price) {&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖9 程式&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiik-am1GWimqbG_dx559BjBkw_-OBWIjSQYrxQDSpnG4AB_uY0oUf-B_zO7nIudUtuvb4Sbag9faMlH-aQBJh78kuWvRea5Ua5Xcc5c2XHLHjpe1v8ydSDZ0JC9zCeX3gqBq5r5C1Wkk-17k4PK8c3lRhnlaH4BZZCfwcqMyMmCPQGXX6jqkO_Rp1YKw=s1058&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;307&quot; data-original-width=&quot;1058&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiik-am1GWimqbG_dx559BjBkw_-OBWIjSQYrxQDSpnG4AB_uY0oUf-B_zO7nIudUtuvb4Sbag9faMlH-aQBJh78kuWvRea5Ua5Xcc5c2XHLHjpe1v8ydSDZ0JC9zCeX3gqBq5r5C1Wkk-17k4PK8c3lRhnlaH4BZZCfwcqMyMmCPQGXX6jqkO_Rp1YKw=w640-h186&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖10 測試&amp;nbsp; http://localhost:8080/books/test6/123456-java-123&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh4NZdqSzsKRrhIytLxSRAjrBG3Uw2YPgqScQDep65bnErMe9YtjumygSddM8hkj0-tY8jGq5zaPQToH9biEi23ueSMgbpGBckvuMYn-jOfJjpSzqPBA6RkKhwshKdVZww6ek7onyag7VE18XATQ7MT3NDDwtJPArZFbwoucAX7msLwScKf9GmjibA86w=s1384&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;679&quot; data-original-width=&quot;1384&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh4NZdqSzsKRrhIytLxSRAjrBG3Uw2YPgqScQDep65bnErMe9YtjumygSddM8hkj0-tY8jGq5zaPQToH9biEi23ueSMgbpGBckvuMYn-jOfJjpSzqPBA6RkKhwshKdVZww6ek7onyag7VE18XATQ7MT3NDDwtJPArZFbwoucAX7msLwScKf9GmjibA86w=w640-h314&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖11 測試&amp;nbsp; http://localhost:8080/books/test6/123456/java/123&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhEgJ_VB_Ybd0HoDL2UfhnHdaMmJPmRN08yXr2dfnCxXMgSRCVavoSSlHxfPebuYR8VyrD2Pc2N8s0KmsTSAT5bBbFc0yHtBxZhG0WcKO4pnQPDm9uIdX3Mrsvn1FQskanpE-14MASCsDMRfMKqsMIxqs6dezA5-zIfBLI9ap_A1jt_3wucimbuQUCE8Q=s1361&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;655&quot; data-original-width=&quot;1361&quot; height=&quot;308&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhEgJ_VB_Ybd0HoDL2UfhnHdaMmJPmRN08yXr2dfnCxXMgSRCVavoSSlHxfPebuYR8VyrD2Pc2N8s0KmsTSAT5bBbFc0yHtBxZhG0WcKO4pnQPDm9uIdX3Mrsvn1FQskanpE-14MASCsDMRfMKqsMIxqs6dezA5-zIfBLI9ap_A1jt_3wucimbuQUCE8Q=w640-h308&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、@PathVariable 將參數轉為 map 應用&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用測試程式如下：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(value = &quot;/test8/{id}/{name}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest8(@PathVariable Map&amp;lt;String, String&amp;gt; bookMsp) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖12 程式&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjiIEnVZjjRQh_nrB-mnyCdwOfOsRtgaykeqtPPt6P56U3eIFf1VCVqrExSjCn0kjayT28oCkGSSClhMftocO47WXbuPPnJqx9ogCWlEIaE8C7FeKg4tdwR-HlTLXzpBxzQ1fFlf07oOJGD67OYOrzfWuGYKL8qZe3ncwG2bOc-J1lXPCg6WXPK6OvaFA=s1033&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;188&quot; data-original-width=&quot;1033&quot; height=&quot;116&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjiIEnVZjjRQh_nrB-mnyCdwOfOsRtgaykeqtPPt6P56U3eIFf1VCVqrExSjCn0kjayT28oCkGSSClhMftocO47WXbuPPnJqx9ogCWlEIaE8C7FeKg4tdwR-HlTLXzpBxzQ1fFlf07oOJGD67OYOrzfWuGYKL8qZe3ncwG2bOc-J1lXPCg6WXPK6OvaFA=w640-h116&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖13 測試 http://localhost:8080/books/test8/123456/java&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgOcINhCFZvukDdJ4z9jAMoy2IGJn88ZbAa_vpo6uLYW1Y6O2rL_56wJdj9M9ySExiJRCpGnYPQbaSRtos3yq-qvbfizLI4C8YM-ozEYNMZZPiDjj4BalcylXpIV94OvvjiE0ngUJWUUGODmotcekemR2XklmfuI44zfVvYL_DIKeJnPL-8AEtt5jPplg=s1331&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;647&quot; data-original-width=&quot;1331&quot; height=&quot;312&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgOcINhCFZvukDdJ4z9jAMoy2IGJn88ZbAa_vpo6uLYW1Y6O2rL_56wJdj9M9ySExiJRCpGnYPQbaSRtos3yq-qvbfizLI4C8YM-ozEYNMZZPiDjj4BalcylXpIV94OvvjiE0ngUJWUUGODmotcekemR2XklmfuI44zfVvYL_DIKeJnPL-8AEtt5jPplg=w640-h312&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、@RequestParam&amp;nbsp; 的使用&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用@RequestParam ，URL是這樣的：http://host:port/path?參數名1=參數值1&amp;amp;參數名2=參數值2&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestParam 有四個參數方法可以 value 、 name 、required、defaultValue&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;value 、 name 、required 方法跟 @PathVariable功能一樣。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;defaultValue 當 required 為false時，給預設值的設定。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖14&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEignvkv2MtiKSd51DWlRXdPKfIz4ZFpZ8omGWiBZchWvB6RaBnFeI508zn1_LZYpOSKynjn8zc9My3-dYYB9edIFRTTJueMEM4asK-nxILwpqNUhANW9iq25BIrqUKtXyqkrwE29x9CD-1F78aPi2u9HQG5C2q8mBhZhF1lRGwhyjBw4qXE8KFaGGOp7w=s843&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;700&quot; data-original-width=&quot;843&quot; height=&quot;532&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEignvkv2MtiKSd51DWlRXdPKfIz4ZFpZ8omGWiBZchWvB6RaBnFeI508zn1_LZYpOSKynjn8zc9My3-dYYB9edIFRTTJueMEM4asK-nxILwpqNUhANW9iq25BIrqUKtXyqkrwE29x9CD-1F78aPi2u9HQG5C2q8mBhZhF1lRGwhyjBw4qXE8KFaGGOp7w=w640-h532&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test10/list&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String requestParamTest10(@RequestParam String name, @RequestParam String id) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖15&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj4IzxsV7dS1Ln_P-0teioW6cxGT3dD9bFTZJQCwgak43LJ2xKyjQIgr69MBlcOEUPjMTiKaQQDyuH_RHoHvO1UzfNKQVgFRPzCW6nBx56Y15vkUeocFXU6tnA0P6SDzjnfMnuFqbb-zXehiX_ttvzHIQbLkEVxqT7jmjkc16xyU3LieA7vfonjQ1AJpQ=s945&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;188&quot; data-original-width=&quot;945&quot; height=&quot;128&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj4IzxsV7dS1Ln_P-0teioW6cxGT3dD9bFTZJQCwgak43LJ2xKyjQIgr69MBlcOEUPjMTiKaQQDyuH_RHoHvO1UzfNKQVgFRPzCW6nBx56Y15vkUeocFXU6tnA0P6SDzjnfMnuFqbb-zXehiX_ttvzHIQbLkEVxqT7jmjkc16xyU3LieA7vfonjQ1AJpQ=w640-h128&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖16 測試 http://localhost:8080/books/test10/list?name=test&amp;amp;id=123&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9Acxf-3onglbnq3kbiN0trrR24Lkgi42Z95ANwsF-DrGTSMjMjn2tWBwniic2Y0W3WLKKk5QUEtl2lJH34olnJT_PCgyKCVji_TZKqmO2tr7sddCWt0C56tRXYg7FSlc9sOSTSMrAa39LpXB9R2CDOln2q99ogDMwkjji33AuM8Xbmp_T0K-1eH5vtA=s1404&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;631&quot; data-original-width=&quot;1404&quot; height=&quot;288&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh9Acxf-3onglbnq3kbiN0trrR24Lkgi42Z95ANwsF-DrGTSMjMjn2tWBwniic2Y0W3WLKKk5QUEtl2lJH34olnJT_PCgyKCVji_TZKqmO2tr7sddCWt0C56tRXYg7FSlc9sOSTSMrAa39LpXB9R2CDOln2q99ogDMwkjji33AuM8Xbmp_T0K-1eH5vtA=w640-h288&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;七、@RequestParam&amp;nbsp; 的參數放入request body裡傳送&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;在網頁上會有表單，會使用html form submit的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;而傳送資料就是放入request body裡。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;本文使用psot來測試&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@PostMapping(&quot;/test11/list&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String requestParamTest11(@RequestParam String name, @RequestParam String id) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖17&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEifTrTQVvSyRE12NrTsIQiWtcC6x8avfuXlRCl-nv-I66vmShFIc9pML6tG3d1HzaPA-3MYLnpL9ZxToIkVB98f1VZUt7k4P2w-9wvQ_YudmLnehq5p7OVIKld61yFFkfmWQYjQh8cdjFClamENQ3T-jZR7jmqhVljpXyfsiBurlJov4RR0nxx0DRAm5Q=s900&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;172&quot; data-original-width=&quot;900&quot; height=&quot;122&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEifTrTQVvSyRE12NrTsIQiWtcC6x8avfuXlRCl-nv-I66vmShFIc9pML6tG3d1HzaPA-3MYLnpL9ZxToIkVB98f1VZUt7k4P2w-9wvQ_YudmLnehq5p7OVIKld61yFFkfmWQYjQh8cdjFClamENQ3T-jZR7jmqhVljpXyfsiBurlJov4RR0nxx0DRAm5Q=w640-h122&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用post&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖18&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj0_ykK9sv9kc7zmEXjirHlfRVTsoVTnILJWZIC7zcGgbbpxIdydt7N1xckSzcsW1dxZn_gW0S7OgCpOy5UjBaBtpmBuJlO0tCQKJVGDeIPUYkLnquB9qIJ8kL0h7AXPAnXrai7JE2GdI_YrECP4Td4j1SjzERCD2KbXYZNpX-5cJunR8PtNaKjPVWaRw=s1355&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;817&quot; data-original-width=&quot;1355&quot; height=&quot;386&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj0_ykK9sv9kc7zmEXjirHlfRVTsoVTnILJWZIC7zcGgbbpxIdydt7N1xckSzcsW1dxZn_gW0S7OgCpOy5UjBaBtpmBuJlO0tCQKJVGDeIPUYkLnquB9qIJ8kL0h7AXPAnXrai7JE2GdI_YrECP4Td4j1SjzERCD2KbXYZNpX-5cJunR8PtNaKjPVWaRw=w640-h386&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用get&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖19 測試 http://localhost:8080/books/test10/list&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEguRDXXMcTVAbrBzELOerMj9gKB14apbX8aVlcXhc7DpzgIIAGZn19Vkti4aARpjVDymZVFIVGInLsj-mFQfZoC1ZgrYFg1KKInAAjraMnpaYYCi_lDbr3eHQZadr2HeazWs1sgKsCpf_EAoR_gpi9zStVh_vKwciqKF4jKp8QpjzxSrWhJ-kZnpuJM5A=s1422&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;795&quot; data-original-width=&quot;1422&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEguRDXXMcTVAbrBzELOerMj9gKB14apbX8aVlcXhc7DpzgIIAGZn19Vkti4aARpjVDymZVFIVGInLsj-mFQfZoC1ZgrYFg1KKInAAjraMnpaYYCi_lDbr3eHQZadr2HeazWs1sgKsCpf_EAoR_gpi9zStVh_vKwciqKF4jKp8QpjzxSrWhJ-kZnpuJM5A=w640-h358&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;八、同一個方法使用 &lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@PathVariable 跟 @RequestParam&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;是可以的。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp;@GetMapping(&quot;/test12/{id}/{name}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest12(@PathVariable(value = &quot;id&quot;) String bookId,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @PathVariable String name,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; @RequestParam String price) {&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖20&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjrnC_GLFbNGyBXbVeQFwNqFz2EfrxTAMRIYJgxE_x7RaKB7iGE-vFcVF0IGivoEpo_JmAShArU9TAxklx44mg7pdbMNkuowpMXr1_5EiOUN0JPpvuo1Ky8ZbpZDMQzgMH4PhN70Wq4IyBvz_OmA3W5hKLUy3OP0F14qisj88sA3JijxAjGIoNTwKeEsw=s1123&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;181&quot; data-original-width=&quot;1123&quot; height=&quot;104&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjrnC_GLFbNGyBXbVeQFwNqFz2EfrxTAMRIYJgxE_x7RaKB7iGE-vFcVF0IGivoEpo_JmAShArU9TAxklx44mg7pdbMNkuowpMXr1_5EiOUN0JPpvuo1Ky8ZbpZDMQzgMH4PhN70Wq4IyBvz_OmA3W5hKLUy3OP0F14qisj88sA3JijxAjGIoNTwKeEsw=w640-h104&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖21&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg8k5R6kiDdaqTqhLr1fro4F4sbaM0tDVJxGaNE2rB5WR_KIttmRpZCmiZHamPukT_8v9CPphcK6WeJD73Cgrqrp8vKU25KFlPywiYiKACxDXMCBXKrUGhVK4_lFVM0D5vgd-eExT0hz1N3F630N-mTgW0zsfrz4RREQFTtvR_R1FWbt_aaqABvADwrjw=s1429&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;807&quot; data-original-width=&quot;1429&quot; height=&quot;362&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg8k5R6kiDdaqTqhLr1fro4F4sbaM0tDVJxGaNE2rB5WR_KIttmRpZCmiZHamPukT_8v9CPphcK6WeJD73Cgrqrp8vKU25KFlPywiYiKACxDXMCBXKrUGhVK4_lFVM0D5vgd-eExT0hz1N3F630N-mTgW0zsfrz4RREQFTtvR_R1FWbt_aaqABvADwrjw=w640-h362&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;九、測試@RequestParam 的 defaultValue&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;當 required 為false時，給預設值的設定。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;程式：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@GetMapping(&quot;/test13/{id}/{name}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String pathVariableTest13(@PathVariable(value = &quot;id&quot;) String bookId,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@PathVariable String name,&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;@RequestParam(required=false,defaultValue=&quot;99&quot;) String price) {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;									&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖22 設定 price 非必要參數 如果沒給值，就用預設值&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgk0YypojCk365i1lUtq4HulCI34WcRRSqSq8SiNKmHJV4fYaqq3_lAUdAKG2CDF9riBbUQoeOvG04SllaWk0cyxr80xH4dyua8XVXQzEyAEe3pUBvLpHfhRsmGnHgpQeJ_faTZnwFA1UllMlX8269hiG-O-ZK7JPNYPydMf0AHBCHYkFlDZtECAO4kJw=s1033&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;155&quot; data-original-width=&quot;1033&quot; height=&quot;96&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgk0YypojCk365i1lUtq4HulCI34WcRRSqSq8SiNKmHJV4fYaqq3_lAUdAKG2CDF9riBbUQoeOvG04SllaWk0cyxr80xH4dyua8XVXQzEyAEe3pUBvLpHfhRsmGnHgpQeJ_faTZnwFA1UllMlX8269hiG-O-ZK7JPNYPydMf0AHBCHYkFlDZtECAO4kJw=w640-h96&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖23 price 參數傳入12&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEivKL-UewvB6mwKl05c8OYcJynOmcRgf13ZmG0pPMtdaNONXk2wiYg0Ne2hJ4E_6Rm9WGCM6UCpPCDbD_SiLDIcNWpgJhfjDvnRKcSS0DkRCCz2p3CcOKSUdSOO7JUb4h2WGzrj0vUlMFEuMNt8S2K1FNIe3NVM_raBADtJoA2nmwtOuGnvYYc3vVgDpQ=s1372&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;835&quot; data-original-width=&quot;1372&quot; height=&quot;390&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEivKL-UewvB6mwKl05c8OYcJynOmcRgf13ZmG0pPMtdaNONXk2wiYg0Ne2hJ4E_6Rm9WGCM6UCpPCDbD_SiLDIcNWpgJhfjDvnRKcSS0DkRCCz2p3CcOKSUdSOO7JUb4h2WGzrj0vUlMFEuMNt8S2K1FNIe3NVM_raBADtJoA2nmwtOuGnvYYc3vVgDpQ=w640-h390&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;圖24 取消 price 傳入值&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhFxOhKD3Jo5SpfFsKMfuKYVmBSv3iFtcFurUx7C7glObjx_rquvSP2L4u7U-Fo3Kn8NJull7NEeixNy9i0mVmB6cw0Opa67EQOHPzQ7oKUJEEug14H9Y-vhVlQgIJpbt0n_ePZnKFN_qiF36XdLc2ZVuQ2agRahabaYLSSnMhKQSGxgaNafglx2NhydQ=s1427&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;826&quot; data-original-width=&quot;1427&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhFxOhKD3Jo5SpfFsKMfuKYVmBSv3iFtcFurUx7C7glObjx_rquvSP2L4u7U-Fo3Kn8NJull7NEeixNy9i0mVmB6cw0Opa67EQOHPzQ7oKUJEEug14H9Y-vhVlQgIJpbt0n_ePZnKFN_qiF36XdLc2ZVuQ2agRahabaYLSSnMhKQSGxgaNafglx2NhydQ=w640-h370&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/12400aded938ca6fa414a52d1284e18a25c256e7/spring-boot-we-controller-requestparam-pathvariable-demo.zip&quot; target=&quot;_blank&quot;&gt;本文下載專案&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/5891772512417676058/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-requestparam.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5891772512417676058'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5891772512417676058'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-requestparam.html' title='Spring Boot web 專案 Controller RequestParam 和 PathVariable annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiWxWzlYeOt2DBcErwKtc-YPyok3kqNfJObKFzPXb5VsRnsx33jPHy7KdmTiJP4pIRpgLNfwebj2akmeawii1mDcRS2xaz7x6M16zC4ZdRNErpejCCIsISTsfMqNsZxBHfaxSipSaR40ytuauX8SxvRoIr9JowuiTx0iFNECpqBuvR0AxfkWA6QvJu_tQ=s72-w640-h362-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-323398927729494772</id><published>2022-02-11T16:41:00.001+08:00</published><updated>2022-02-11T16:46:54.924+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案 Controller method Mapping annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Spring MVC 4.3還多了@GetMapping，@PostMapping，@PutMapping，@DeleteMapping，@PatchMapping等&lt;/div&gt;&lt;div&gt;對應RESTful API的HTTP method：GET，POST，PUT，DELETE，PATCH等&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在&lt;/div&gt;&lt;div&gt;Maven: org.springframework:spring-web:5.3.15&lt;/div&gt;&lt;div&gt;package org.springframework.web.bind.annotation;&lt;/div&gt;&lt;div&gt;可以看到有些annotation&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgFpHUoA7g5tzRHeQQ2YQvTR8TSyN2s5_SK4TUhYEh7Xtf8oO9gsOPtOj6CcNvEra1BOBjzBk4ZfdrzfMzQyYy_CwWm2I_T4ZB34wyqk8LJySz68Hl2S_EREKEK985w7j8m5tgbDW3rk9YksfMvTPzJzj_usa0Uaaljcy3GdkQMs_QZnNhGF1WLHYsu_A=s1659&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;768&quot; data-original-width=&quot;1659&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgFpHUoA7g5tzRHeQQ2YQvTR8TSyN2s5_SK4TUhYEh7Xtf8oO9gsOPtOj6CcNvEra1BOBjzBk4ZfdrzfMzQyYy_CwWm2I_T4ZB34wyqk8LJySz68Hl2S_EREKEK985w7j8m5tgbDW3rk9YksfMvTPzJzj_usa0Uaaljcy3GdkQMs_QZnNhGF1WLHYsu_A=w640-h296&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;提供那多的HTTP Method，&lt;/div&gt;&lt;div&gt;基本上主要是@GetMapping、@PostMapping、@PutMapping、@DeleteMapping&lt;/div&gt;&lt;div&gt;配合專案的 CRUD (Create, Read, Update and Delete)，&lt;/div&gt;&lt;div&gt;@GetMapping&amp;nbsp; &lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;專案中用來 Read 相關資源操作&lt;/div&gt;&lt;div&gt;@PostMapping &lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;專案中用來 Create 相關資源操作&lt;/div&gt;&lt;div&gt;@PutMapping &lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;專案中用來 Update 相關資源操作&lt;/div&gt;&lt;div&gt;@DeleteMapping&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;專案中用來 Delete 相關資源操作&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2 以下簡單測試程式&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgtd3bCDMF6rI2XBkvyo5yPJFZH8vwNjH8hyPkoJf3_p5MtuNRUKk5O60X754kK8oF4z5TIhW0mQV8lAYs1rqaBs-ynpqC7VuNRCw-V-bp8bqDvAz6VO2tp66A_n6gmJhi9V2FSAhyldDVJgAvuwZ2903nBkA9ge2LNAdUnXf7unVjnZiqIDIQbP9lQlA=s1601&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;673&quot; data-original-width=&quot;1601&quot; height=&quot;270&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgtd3bCDMF6rI2XBkvyo5yPJFZH8vwNjH8hyPkoJf3_p5MtuNRUKk5O60X754kK8oF4z5TIhW0mQV8lAYs1rqaBs-ynpqC7VuNRCw-V-bp8bqDvAz6VO2tp66A_n6gmJhi9V2FSAhyldDVJgAvuwZ2903nBkA9ge2LNAdUnXf7unVjnZiqIDIQbP9lQlA=w640-h270&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用Postman工具&lt;/div&gt;&lt;div&gt;如果沒有可以到 Postman 官網下載&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.postman.com/downloads/&quot; target=&quot;_blank&quot;&gt;https://www.postman.com/downloads/&lt;/a&gt;&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5NQHNiaqKYC-DLo1bqZ5Q-yb3jvT41PaRquhef9S7GIC7c6xtY_dugAGq7dXRdkuAHfvfBIiHcWlJ75o1j2f6JRKJagt4WyLUDqBcLgRK93j75BwnwJPPzqGzdj3U_XyMJDmi7iVITxAQjRhIRqh9E905b321H1O8yl0HbeW5DAlx_uwh_s3Bmg_xJQ=s1796&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;858&quot; data-original-width=&quot;1796&quot; height=&quot;306&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj5NQHNiaqKYC-DLo1bqZ5Q-yb3jvT41PaRquhef9S7GIC7c6xtY_dugAGq7dXRdkuAHfvfBIiHcWlJ75o1j2f6JRKJagt4WyLUDqBcLgRK93j75BwnwJPPzqGzdj3U_XyMJDmi7iVITxAQjRhIRqh9E905b321H1O8yl0HbeW5DAlx_uwh_s3Bmg_xJQ=w640-h306&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 開啟Postman -&amp;gt; 在中間上方有個+ 可以新增 request介面&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjAVBWvp5-Jqyp0qHbYA-9TiL-K4myA79vPovUx5Quqa8FV01XtubfYuu8VAPeZZxdNHTlXtR5izr9VgZxFAzehNx6lyVbIsUsd2E1lcnGlqFn6lnmCAF6jy9koizytKWPSm4dKpV0IE8ic4QA2h6PgASqxChmZxE2x4_hsaFyFnp_7_J5GOdfIHF6QmA=s1910&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1068&quot; data-original-width=&quot;1910&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjAVBWvp5-Jqyp0qHbYA-9TiL-K4myA79vPovUx5Quqa8FV01XtubfYuu8VAPeZZxdNHTlXtR5izr9VgZxFAzehNx6lyVbIsUsd2E1lcnGlqFn6lnmCAF6jy9koizytKWPSm4dKpV0IE8ic4QA2h6PgASqxChmZxE2x4_hsaFyFnp_7_J5GOdfIHF6QmA=w640-h358&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 選擇GET 及輸入 http://localhost:8080/book/index -&amp;gt;後按下 Send -&amp;gt;下方會就會有回傳結果&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhby0kzV7ZZ-hFLDXhZt31Ysjrg0uqdJi5pVcRpMdTr5CB9_z0otoYegVSZzVHhHG8btu7QsMACvRQzDoiMxqew4Ue1A46sNXKtp9ujx1mA90odyXyGfkbL29betrnlMliDeiIpYFyXVbAXhquaCJFR4bJWJWao09g6jZMcVoH62uEK-xn7hSD9PCsG5g=s1407&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;727&quot; data-original-width=&quot;1407&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhby0kzV7ZZ-hFLDXhZt31Ysjrg0uqdJi5pVcRpMdTr5CB9_z0otoYegVSZzVHhHG8btu7QsMACvRQzDoiMxqew4Ue1A46sNXKtp9ujx1mA90odyXyGfkbL29betrnlMliDeiIpYFyXVbAXhquaCJFR4bJWJWao09g6jZMcVoH62uEK-xn7hSD9PCsG5g=w640-h330&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 選擇POST&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmCRW5_lmHQEJcGgpgUHNc7mcJdCAb1NWWWH0hSwqcWcNBoHcXaLY4hE229vR5id2kq1YpkUoCtsX5uIww_5lJlv4YsBxvA2vXepVbud4RWKEtFVjxRQn8C1XpyGl9qxVMqKS-XaboFLqNqbpQDmp-o2AAr2DUgM5l26l7jFTqvV4Q08mOLDViFPREig=s1403&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;698&quot; data-original-width=&quot;1403&quot; height=&quot;318&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjmCRW5_lmHQEJcGgpgUHNc7mcJdCAb1NWWWH0hSwqcWcNBoHcXaLY4hE229vR5id2kq1YpkUoCtsX5uIww_5lJlv4YsBxvA2vXepVbud4RWKEtFVjxRQn8C1XpyGl9qxVMqKS-XaboFLqNqbpQDmp-o2AAr2DUgM5l26l7jFTqvV4Q08mOLDViFPREig=w640-h318&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖7 選擇PUT&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiVoYVpRArK8BUQ7nOwS_W5SlaAySZn1H9MP6ofOOP77IN-fUzmSP6r3ub7CQkj-V-qeh6t-keO0eUW2LeLRiQGUeQOyihBIL6c1j3y2R_OKjXKUb47hiIqcCfTAifQNFjefPvjiKLrzl8HvljQF-sqrBiM8djkAqLb2-dEWS8xvL5MNl64Rv4mYoP8zw=s1315&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;669&quot; data-original-width=&quot;1315&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiVoYVpRArK8BUQ7nOwS_W5SlaAySZn1H9MP6ofOOP77IN-fUzmSP6r3ub7CQkj-V-qeh6t-keO0eUW2LeLRiQGUeQOyihBIL6c1j3y2R_OKjXKUb47hiIqcCfTAifQNFjefPvjiKLrzl8HvljQF-sqrBiM8djkAqLb2-dEWS8xvL5MNl64Rv4mYoP8zw=w640-h326&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖8 選擇PATCH&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjid7ziSF7VmY0DcwYQMQwkuFmO4yhuDC7Zt9rqH13nXSf0pTxnZBtUtmwX4l5tL-_m1K_YOMQdtOzft2j1fFdBhe91N4_Cuv7bOPQnec6zvvYorafkVySjQRu5yl7SHGfspG5GN_gTRTWN6CGZeLvzOywzKKwygEVDAfruzhtAP_4akxievbm4xzBatw=s1408&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;665&quot; data-original-width=&quot;1408&quot; height=&quot;302&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjid7ziSF7VmY0DcwYQMQwkuFmO4yhuDC7Zt9rqH13nXSf0pTxnZBtUtmwX4l5tL-_m1K_YOMQdtOzft2j1fFdBhe91N4_Cuv7bOPQnec6zvvYorafkVySjQRu5yl7SHGfspG5GN_gTRTWN6CGZeLvzOywzKKwygEVDAfruzhtAP_4akxievbm4xzBatw=w640-h302&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖9 選擇DELETE&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiBqIn45fnF3s1YDNzReQQ8J0ExKnrWjsdCtcMWfdMOInzzv1vJr6GJvRy8rDVY1JKmXByCTAxe6F-vy1CU7rIGkO77l09Qz3eaQpPe9wq808kdwT3laDYe5VVSyU1FeHsjGZbdzNjBPpaIX2JEj2URi56yB8xopOC-nfHOz1U4VvNtVmJNVacurFgH5w=s1419&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;630&quot; data-original-width=&quot;1419&quot; height=&quot;284&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiBqIn45fnF3s1YDNzReQQ8J0ExKnrWjsdCtcMWfdMOInzzv1vJr6GJvRy8rDVY1JKmXByCTAxe6F-vy1CU7rIGkO77l09Qz3eaQpPe9wq808kdwT3laDYe5VVSyU1FeHsjGZbdzNjBPpaIX2JEj2URi56yB8xopOC-nfHOz1U4VvNtVmJNVacurFgH5w=w640-h284&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/1f301f6c153826852c3f65509f969b835b9a262f/spring-boot-web-controller-methd-mapping-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/323398927729494772/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-method.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/323398927729494772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/323398927729494772'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-method.html' title='Spring Boot web 專案 Controller method Mapping annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgFpHUoA7g5tzRHeQQ2YQvTR8TSyN2s5_SK4TUhYEh7Xtf8oO9gsOPtOj6CcNvEra1BOBjzBk4ZfdrzfMzQyYy_CwWm2I_T4ZB34wyqk8LJySz68Hl2S_EREKEK985w7j8m5tgbDW3rk9YksfMvTPzJzj_usa0Uaaljcy3GdkQMs_QZnNhGF1WLHYsu_A=s72-w640-h296-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-34445008923303315</id><published>2022-02-10T21:59:00.000+08:00</published><updated>2022-02-10T21:59:04.439+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IntelliJ IDEA"/><title type='text'>IDEA maven download sources發生錯誤 Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1</title><content type='html'>&lt;div&gt;一、錯誤訊息&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZ_ktCHs0AQQEEkKoUC-t9HLXJl2cYcvkn8AVhCp4B84MYzntUZrj9Jsv1L5VaWtFcwnyjKaVAe9BrOyHidreSrMaKX6qjYUFtZ00wXVmEtzVu-TJ38O8xdG4CiHj9urqyg7ZgsWqYO25BY63HSuy6O-076d9qRhevoTbiQF2_viDKHyPZ_Th6btvf5g=s1699&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;422&quot; data-original-width=&quot;1699&quot; height=&quot;158&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZ_ktCHs0AQQEEkKoUC-t9HLXJl2cYcvkn8AVhCp4B84MYzntUZrj9Jsv1L5VaWtFcwnyjKaVAe9BrOyHidreSrMaKX6qjYUFtZ00wXVmEtzVu-TJ38O8xdG4CiHj9urqyg7ZgsWqYO25BY63HSuy6O-076d9qRhevoTbiQF2_viDKHyPZ_Th6btvf5g=w640-h158&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、解决方案&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;settings-&amp;gt;Build，Execution，Deployment -&amp;gt; Build Tools -&amp;gt; Maven -&amp;gt; Importing-&amp;gt;&amp;nbsp; JDK for importer 選擇你安装的JDK版本&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiMmcRJupFJEGlQRKaTW2AKA51Ue1ModXQ6aXOrnERyyiBEutQHI7NIKsEgOnyTgETUkEHrP4cMxaUiY-pOzHRvNjooWJjApRD12asO9ZlQ_eXaK6xA_PjIRQquD-N2Ezx97pssM4dizDNfRES_Zov449c-0AVvVNJD4zsliygXX9jsYa2EUvY3rlU6iA=s992&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;710&quot; data-original-width=&quot;992&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiMmcRJupFJEGlQRKaTW2AKA51Ue1ModXQ6aXOrnERyyiBEutQHI7NIKsEgOnyTgETUkEHrP4cMxaUiY-pOzHRvNjooWJjApRD12asO9ZlQ_eXaK6xA_PjIRQquD-N2Ezx97pssM4dizDNfRES_Zov449c-0AVvVNJD4zsliygXX9jsYa2EUvY3rlU6iA=w640-h458&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/34445008923303315/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/idea-maven-download-sources-caused-by.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/34445008923303315'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/34445008923303315'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/idea-maven-download-sources-caused-by.html' title='IDEA maven download sources發生錯誤 Caused by: java.rmi.ConnectException: Connection refused to host: 127.0.0.1'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiZ_ktCHs0AQQEEkKoUC-t9HLXJl2cYcvkn8AVhCp4B84MYzntUZrj9Jsv1L5VaWtFcwnyjKaVAe9BrOyHidreSrMaKX6qjYUFtZ00wXVmEtzVu-TJ38O8xdG4CiHj9urqyg7ZgsWqYO25BY63HSuy6O-076d9qRhevoTbiQF2_viDKHyPZ_Th6btvf5g=s72-w640-h158-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6288891657160655788</id><published>2022-02-10T21:37:00.003+08:00</published><updated>2022-02-10T21:37:46.893+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案 RestController Annotation</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文說明續上一編&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-controller-annotation.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 Controller Annotation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;專案在寫RESTful API時，因為通常需要回傳json或xml，所以無須交由View Resolver處理來返回jsp頁面，&lt;/div&gt;&lt;div&gt;所以會在Controller的API方法前加上@Responsebody來達成。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;而RestController 是無法返回jsp頁面的。因為相當於@Controller + @Responsebody 的效果。&lt;/div&gt;&lt;div&gt;會在@RequestMapping 方法默認採用@ResponseBody。&lt;/div&gt;&lt;div&gt;return就是返回內容。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@ResponseBody 是指定方法返回的結果直接寫入 HTTP 響應正文（ResponseBody）中，一般在非同步獲取資料時使用&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@RestController&amp;nbsp; 是 spring mvc 4.0版本以上才有的&lt;/div&gt;&lt;div&gt;圖1&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html&quot; target=&quot;_blank&quot;&gt;https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhcI4llH_ozACVA1Ps3VRzhT993RLML8IwbAlQBniC8dvgmpYpMh9odhNgnDz1LFIvL1vfigkyJ5pd4LCgrzq30FAr_Gfjg9FWDx8SRZOGVfN_rBd67LRgjeyqMU55CMoH4RW8DcseAfKHcsK5dZRHY1IbxM4QNLC-5WaqahTqBZvEesbXX0L8I93PmdQ=s1807&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;965&quot; data-original-width=&quot;1807&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhcI4llH_ozACVA1Ps3VRzhT993RLML8IwbAlQBniC8dvgmpYpMh9odhNgnDz1LFIvL1vfigkyJ5pd4LCgrzq30FAr_Gfjg9FWDx8SRZOGVfN_rBd67LRgjeyqMU55CMoH4RW8DcseAfKHcsK5dZRHY1IbxM4QNLC-5WaqahTqBZvEesbXX0L8I93PmdQ=w640-h342&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg9sZp-rEYsThmGrn_xcpHdH-RpY48CitLZUQ3sR6zPVK8l5OMMGShJarmNnXWuHpCLdMSYdNlM_7zn-zb52A_JRBJh_vEQY_2FnuoX772gaBo-2LfmBmWC3DqLoupCrUu4kng9I90MPZSu85c-x-qLDZlKgDc_C-o-UGptuvbOk4uor6Uj3-72GSwiaA=s777&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;520&quot; data-original-width=&quot;777&quot; height=&quot;428&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg9sZp-rEYsThmGrn_xcpHdH-RpY48CitLZUQ3sR6zPVK8l5OMMGShJarmNnXWuHpCLdMSYdNlM_7zn-zb52A_JRBJh_vEQY_2FnuoX772gaBo-2LfmBmWC3DqLoupCrUu4kng9I90MPZSu85c-x-qLDZlKgDc_C-o-UGptuvbOk4uor6Uj3-72GSwiaA=w640-h428&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;新增 BookController 做範例介紹&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;BookController 宣告為 @RestController&lt;/div&gt;&lt;div&gt;@RequestMapping(&quot;/book&quot;) 宣告請求/book 時，往BookController。&lt;/div&gt;&lt;div&gt;測試方法有二個，一個index，一個為getOne&lt;/div&gt;&lt;div&gt;當請求 /book/index 走index方法&lt;/div&gt;&lt;div&gt;當請求 /book/1 (數字)走getOne方法&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEipi4ZqDQsjm9ptJlZC7d9jPOpgt559yBPvgAqL0PsAJA8bQrghqRNY6xAkBwAw7xKRz48StaMArd6rsjmq5iRTHbgLBdKZ2fM4F6mlnMUQ4wjH1txuP9kuOY-09ZKJY7yTc3SHzf7Yb0M3Yaf4LxL40p8aJEQ_c0vWW6JDmCZufDKwyOKWzwBZ6t5wUw=s1218&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1218&quot; height=&quot;416&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEipi4ZqDQsjm9ptJlZC7d9jPOpgt559yBPvgAqL0PsAJA8bQrghqRNY6xAkBwAw7xKRz48StaMArd6rsjmq5iRTHbgLBdKZ2fM4F6mlnMUQ4wjH1txuP9kuOY-09ZKJY7yTc3SHzf7Yb0M3Yaf4LxL40p8aJEQ_c0vWW6JDmCZufDKwyOKWzwBZ6t5wUw=w640-h416&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 測試 http://localhost:8080/book/index&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjNQUVMbJlU0cducg4Rii_F3OEjj2rLNQYy3kP45rbmpKQEa0kvby1cV2nj3EMGFcslJXdGWJGjlHnYkSLwrnW9TB9vqoZ7e9By5Kwm8tL7J-9QFooUb2sLeTKsuMgDESXQmLToz_FNzMHcDBomX2REItuisDMzewqrZmIm6Ja0OGmr2hy5m3iMigZOTw=s647&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;191&quot; data-original-width=&quot;647&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjNQUVMbJlU0cducg4Rii_F3OEjj2rLNQYy3kP45rbmpKQEa0kvby1cV2nj3EMGFcslJXdGWJGjlHnYkSLwrnW9TB9vqoZ7e9By5Kwm8tL7J-9QFooUb2sLeTKsuMgDESXQmLToz_FNzMHcDBomX2REItuisDMzewqrZmIm6Ja0OGmr2hy5m3iMigZOTw=w640-h188&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 測試 http://localhost:8080/book/12&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYX1dXkLa20tLIUBTo3yq5AUTJKyTdM-2w_sXCk15kMH0H6YLKfoYS2rPdjuB1iKIXG0Gj9tRz0c6cyQP_NefKt7BqQusAsAcJYObFiE0tyF4SjxvBGb1cIi9ysrxNieXs0yDYuP4XBWsUyDRjBP3WMwXlO9a09VGU_g6pbgAuHQqdiwspnBssKUD5Gg=s602&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;180&quot; data-original-width=&quot;602&quot; height=&quot;192&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYX1dXkLa20tLIUBTo3yq5AUTJKyTdM-2w_sXCk15kMH0H6YLKfoYS2rPdjuB1iKIXG0Gj9tRz0c6cyQP_NefKt7BqQusAsAcJYObFiE0tyF4SjxvBGb1cIi9ysrxNieXs0yDYuP4XBWsUyDRjBP3WMwXlO9a09VGU_g6pbgAuHQqdiwspnBssKUD5Gg=w640-h192&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;註：模型（Model ）封裝了應用程序的數據&lt;/div&gt;&lt;div&gt;本文測試回傳數據用，故不在此說明MVC架構。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/35448be857e094a43894fb077a479ffb5c9f3c28/spring-boot-restcontroller-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6288891657160655788/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6288891657160655788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6288891657160655788'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html' title='Spring Boot web 專案 RestController Annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEhcI4llH_ozACVA1Ps3VRzhT993RLML8IwbAlQBniC8dvgmpYpMh9odhNgnDz1LFIvL1vfigkyJ5pd4LCgrzq30FAr_Gfjg9FWDx8SRZOGVfN_rBd67LRgjeyqMU55CMoH4RW8DcseAfKHcsK5dZRHY1IbxM4QNLC-5WaqahTqBZvEesbXX0L8I93PmdQ=s72-w640-h342-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-4146955972468138057</id><published>2022-02-09T21:40:00.003+08:00</published><updated>2022-02-09T21:40:33.385+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring MVC"/><title type='text'>Spring Boot web 專案 Controller Annotation</title><content type='html'>&lt;div&gt;本文續上一篇&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;http://pclevin.blogspot.com/2022/02/spring-boot-web-jsp.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案使用jsp&amp;nbsp;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;有使用到&lt;/div&gt;&lt;div&gt;@Controller 、@RequestMapping、@PathVariable 在本文說明一下。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Annotation:「@」來定義&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、Controller 跟 RequestMapping&amp;nbsp; Annotation&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@Controller 宣告該java類是Controller類。&lt;/div&gt;&lt;div&gt;有沒宣告spring 容器會不知道專案有該Controller類。&lt;/div&gt;&lt;div&gt;(如果你是賣場員工，有一個箱子沒有標識是什麼物品字樣，你會知道這箱是可樂還是書嗎?)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Controller 跟 RequestMapping 配合&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;@RequestMapping 宣告指定這個Controller的相對URI&lt;/div&gt;&lt;div&gt;(RequestMapping ，就像賣場入口指引標識，指引想找可樂往哪裡走可以到可樂區)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div&gt;當瀏覽器要求&quot;/cola&quot;時，就呼叫 gotocola()&lt;/div&gt;&lt;div&gt;最後return view，而view就是頁面jsp&lt;/div&gt;&lt;div&gt;return &quot;colaArea&quot;;&amp;nbsp;&lt;/div&gt;&lt;div&gt;找colaArea.jsp&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgwggabPqIU-UUewCxftD4CJrsgOWKV7jirxDr2Ps_Pl8Cj8D71xU3XATtJEIG58nIbwNP4rQNZhxvvbWhXqIbz--7apav65aeF0IojOtNGwscNOUDIRlNzXM4qT6guoztqYqKp69L_T8vM3a3OlMXLf_fvwvID5etzQwjRZt431uE0dffKUfNFarAaHQ=s1116&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;440&quot; data-original-width=&quot;1116&quot; height=&quot;252&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgwggabPqIU-UUewCxftD4CJrsgOWKV7jirxDr2Ps_Pl8Cj8D71xU3XATtJEIG58nIbwNP4rQNZhxvvbWhXqIbz--7apav65aeF0IojOtNGwscNOUDIRlNzXM4qT6guoztqYqKp69L_T8vM3a3OlMXLf_fvwvID5etzQwjRZt431uE0dffKUfNFarAaHQ=w640-h252&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;瀏覽器輸入 http://localhost:8080/cola&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjYJAnG98AHadAr2bQ5LGF4wCXrQxUdnBj2CmTNN_vceyWjblYyTEpRcC3cWY4MeQu4JqjL-ITbRnoonzd58hMitpxcya-jdc-HmgbZo7eu-p3EqlNJhoVoYzxB-ehYmnqlUa9kt_3NDMt0ZFOxJjWCtVGA6nKB4SDilbQ2SnhE1_CXuUV_PFLi-SGccw=s720&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;305&quot; data-original-width=&quot;720&quot; height=&quot;272&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjYJAnG98AHadAr2bQ5LGF4wCXrQxUdnBj2CmTNN_vceyWjblYyTEpRcC3cWY4MeQu4JqjL-ITbRnoonzd58hMitpxcya-jdc-HmgbZo7eu-p3EqlNJhoVoYzxB-ehYmnqlUa9kt_3NDMt0ZFOxJjWCtVGA6nKB4SDilbQ2SnhE1_CXuUV_PFLi-SGccw=w640-h272&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、PathVariable Annotation&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PathVariable 宣告指定方法參數對應 mapping URI&lt;/div&gt;&lt;div&gt;說明如下&lt;/div&gt;&lt;div&gt;當賣場很大，規劃一小區做書區，書區目前分三大&lt;/div&gt;&lt;div&gt;&amp;nbsp;Children&#39;s book 童書 · Reference book 工具書、參考書 · Textbook 教科書&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1、規劃一小區做書區。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;BookController 宣告為books&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@Controller&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestMapping(&quot;/books&quot;)&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;public class BookController {&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;2、書區目前分三大。&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;childrensbook.jsp&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;referencebook.jsp&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;textbook.jsp&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;3、指引路線&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;使用 PathVariable&amp;nbsp; 宣告該參數對應取值&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;@RequestMapping(&quot;/{jspPageName}&quot;)&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; public String jspbooksPage(@PathVariable String jspPageName){&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;{jspPageName} 的值會對應 String jspPageName 給值。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;當瀏覽器要求&quot;/books/childrensbook&quot;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;第一區是去books，進入books下的childrensbook&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEixu5m6w64VMYgSVFV3bYxMp7_teMkywhuB7_o7DsG0GPLUsrfGvislonYx-DiUXi3myjMOGtvVsb28o3wgHmf7jk_LHGOQKTlc4Q2NOY2z38QWvf4yHHhfux08u5Ne8rt0ny0NrknxLUH6kma8J78gGfJmcpd4aoW56S13jZg2BXFptnVlAR9ST7Hqwg=s1434&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;632&quot; data-original-width=&quot;1434&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEixu5m6w64VMYgSVFV3bYxMp7_teMkywhuB7_o7DsG0GPLUsrfGvislonYx-DiUXi3myjMOGtvVsb28o3wgHmf7jk_LHGOQKTlc4Q2NOY2z38QWvf4yHHhfux08u5Ne8rt0ny0NrknxLUH6kma8J78gGfJmcpd4aoW56S13jZg2BXFptnVlAR9ST7Hqwg=w640-h282&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 測試 http://localhost:8080/books/childrensbook&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiLN-pwXwnu_rwMYixyqfda73gqzJ9o2kPzsQgDIly88M9leaAaEzJcj14602JdNEbFhiUO1igWQGrs2JpVs-MBe8S9L2WFF_KDMWAzuNrerSm-AT9xMR4j7E8A3hxHvn4E9-ykVIGH8-90tS1A2WnwTshat4pJD6PnvFzBF3K9JyG_Ew3BoSuONlTU1g=s767&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;387&quot; data-original-width=&quot;767&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiLN-pwXwnu_rwMYixyqfda73gqzJ9o2kPzsQgDIly88M9leaAaEzJcj14602JdNEbFhiUO1igWQGrs2JpVs-MBe8S9L2WFF_KDMWAzuNrerSm-AT9xMR4j7E8A3hxHvn4E9-ykVIGH8-90tS1A2WnwTshat4pJD6PnvFzBF3K9JyG_Ew3BoSuONlTU1g=w400-h201&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 測試 http://localhost:8080/books/referencebook&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjHUuYdw7kZJKCCQkYNqdNSDV8rDWO2fi6ZSu7jiD9rGcPj9kuWmzKRf776Fm7XG1Z12q0MNVEnHFaL9ITQFw6LmmCKJLgUNYW3SzpujJX34CNJvXC8uvzW2P1tPhQkFivwHsSwAZO0IfNWjoTDJpMYiT2hE7d07m7BmT1a7aMaixG5WCH3WCDei0qdQ=s565&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;246&quot; data-original-width=&quot;565&quot; height=&quot;174&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjjHUuYdw7kZJKCCQkYNqdNSDV8rDWO2fi6ZSu7jiD9rGcPj9kuWmzKRf776Fm7XG1Z12q0MNVEnHFaL9ITQFw6LmmCKJLgUNYW3SzpujJX34CNJvXC8uvzW2P1tPhQkFivwHsSwAZO0IfNWjoTDJpMYiT2hE7d07m7BmT1a7aMaixG5WCH3WCDei0qdQ=w400-h174&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 測試 http://localhost:8080/books/textbook&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiBloxpRvkHzZsR6mmqedTEuFpHRu4M-HN6Aug4NXkRV0cIb1ukJirHS1rTOY_Ykp-pbQ0ZqObGXekvFld9RuZ52C_Q1ackI8e7R4fnMBHaeNbj7-KL9umsnsHTNULOm0a54I_Wazq62_-PKtSmEQDXpQqGEXYg567yxs73R4-_7GABOGM_WJjEjZAXvg=s711&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;278&quot; data-original-width=&quot;711&quot; height=&quot;156&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiBloxpRvkHzZsR6mmqedTEuFpHRu4M-HN6Aug4NXkRV0cIb1ukJirHS1rTOY_Ykp-pbQ0ZqObGXekvFld9RuZ52C_Q1ackI8e7R4fnMBHaeNbj7-KL9umsnsHTNULOm0a54I_Wazq62_-PKtSmEQDXpQqGEXYg567yxs73R4-_7GABOGM_WJjEjZAXvg=w400-h156&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/1f659132fa7095224260c604e32bdcdc8d1fae41/spring-boot-controller-annotation-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/4146955972468138057/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-annotation.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/4146955972468138057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/4146955972468138057'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-controller-annotation.html' title='Spring Boot web 專案 Controller Annotation'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgwggabPqIU-UUewCxftD4CJrsgOWKV7jirxDr2Ps_Pl8Cj8D71xU3XATtJEIG58nIbwNP4rQNZhxvvbWhXqIbz--7apav65aeF0IojOtNGwscNOUDIRlNzXM4qT6guoztqYqKp69L_T8vM3a3OlMXLf_fvwvID5etzQwjRZt431uE0dffKUfNFarAaHQ=s72-w640-h252-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6329121587260366239</id><published>2022-02-09T18:57:00.006+08:00</published><updated>2022-02-11T16:49:38.053+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="JSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案使用jsp </title><content type='html'>&lt;div&gt;一、加入依賴&lt;/div&gt;&lt;div&gt;Spring Boot 預設不支援jsp。&lt;/div&gt;&lt;div&gt;需要另外引用jar包來支援&lt;/div&gt;&lt;div&gt;我們需要 tomcat-embed-jasper 依賴項，&lt;/div&gt;&lt;div&gt;以允許應用程序編譯和呈現 JSP 頁面。&lt;/div&gt;&lt;div&gt;如果也會用到jstl library，也要加入依賴&lt;/div&gt;&lt;div&gt;圖1&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgg-3jhDQyVnTpHM3qL1gj_XCVLMckrEipA31SkMGV4KtK4gtqbqtIv_A-QQbepbkxOSwr1dKYhHd1xgVW95hnz1Va5DOhroiSX3loXDLwZm6uDPgMT0-ipGhNcxWmkJF4re-Y_Z8QEJsCKGm5VCMH8xIZRdzv2a3e2Q2p0A5Tv7HvIgRHMldNnKKGNZQ=s976&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;283&quot; data-original-width=&quot;976&quot; height=&quot;186&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgg-3jhDQyVnTpHM3qL1gj_XCVLMckrEipA31SkMGV4KtK4gtqbqtIv_A-QQbepbkxOSwr1dKYhHd1xgVW95hnz1Va5DOhroiSX3loXDLwZm6uDPgMT0-ipGhNcxWmkJF4re-Y_Z8QEJsCKGm5VCMH8xIZRdzv2a3e2Q2p0A5Tv7HvIgRHMldNnKKGNZQ=w640-h186&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、設定 application.properties&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;配置兩個屬性來讓 Spring 才知道這些 JSP 文件的位置。&lt;/div&gt;&lt;div&gt;預設：${project.basedir}/main/webapp/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;spring.mvc.view.prefix=/WEB-INF/jsp/&lt;/div&gt;&lt;div&gt;spring.mvc.view.suffix=.jsp&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;prefix 前段：/WEB-INF/jsp/&lt;/div&gt;&lt;div&gt;suffix 後段：.jsp&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;組合為 ${project.basedir}/main/webapp/WEB-INF/jsp/{可變動的路徑及檔名}.jsp&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;{可變動的路徑及檔名}配合Controller 的 return&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgrjLWfon89E8ciFbkZsv2dOrYkPrcm4QMJF6i-H9Dlwi-9aZW5-3zOGG8krAIslnXBEVaJJZzbtXzbYhCitpJ_gjPmffz49ZAk7-Dadxs36J9EdVlTh4BGYEsQCXRJrFzb5pEQIxp4wB5v4nWOo9d7ikBZbfCOEVR2h7b_IrPndaSDvuFOYIUDbANh2g=s474&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;447&quot; data-original-width=&quot;474&quot; height=&quot;378&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgrjLWfon89E8ciFbkZsv2dOrYkPrcm4QMJF6i-H9Dlwi-9aZW5-3zOGG8krAIslnXBEVaJJZzbtXzbYhCitpJ_gjPmffz49ZAk7-Dadxs36J9EdVlTh4BGYEsQCXRJrFzb5pEQIxp4wB5v4nWOo9d7ikBZbfCOEVR2h7b_IrPndaSDvuFOYIUDbANh2g=w400-h378&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、jap 資料夾建立&lt;/div&gt;&lt;div&gt;圖3&amp;nbsp; ${project.basedir}/main/webapp/WEB-INF/jsp/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjfMfFSEEaLzjFTBDr9QQhYyyEiXypHwLxm70i4tCtFVPZfACbFEof3v0wxZ5HvOxrNi6aDDK80JFrbiDbFVNnhpUhMBo3MPdckLKlPvb_MpTeHkDZr_mef6m_sToy5oX02wSf5oPr6SNLzP_vEH2Vdn3CFAC5AA1pmCSuuxwCOi5LqNIz1tYNX1DwrAg=s1299&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;592&quot; data-original-width=&quot;1299&quot; height=&quot;293&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjfMfFSEEaLzjFTBDr9QQhYyyEiXypHwLxm70i4tCtFVPZfACbFEof3v0wxZ5HvOxrNi6aDDK80JFrbiDbFVNnhpUhMBo3MPdckLKlPvb_MpTeHkDZr_mef6m_sToy5oX02wSf5oPr6SNLzP_vEH2Vdn3CFAC5AA1pmCSuuxwCOi5LqNIz1tYNX1DwrAg=w640-h293&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;四、建立jsp檔&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文建新test.jsp&lt;/div&gt;



&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&amp;lt;%@ page contentType=&quot;text/html;charset=UTF-8&quot; language=&quot;java&quot; %&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;html&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;head&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;title&amp;gt;Spring Boot jsp&amp;lt;/title&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/head&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&amp;lt;h6&amp;gt;Spring Boot jsp&amp;lt;/h6&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/body&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/html&amp;gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiykUSmszecHYLRI3BXpha33sFLzy3dMFPvVxuLlgzL-uBG-rYBxmowsdgDCfnMtqZ5aAzOyKkbqIhtRNon6yfZSqikNgJAyVqbai4iQcHvv6fo45L9zAuw94Enjj3aLkrNILUm41n94Bs1M7GmY70Akh__0UT004F4dsxYQqtiTTHm8RmhsSZb5_Qsfg=s1081&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;482&quot; data-original-width=&quot;1081&quot; height=&quot;286&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiykUSmszecHYLRI3BXpha33sFLzy3dMFPvVxuLlgzL-uBG-rYBxmowsdgDCfnMtqZ5aAzOyKkbqIhtRNon6yfZSqikNgJAyVqbai4iQcHvv6fo45L9zAuw94Enjj3aLkrNILUm41n94Bs1M7GmY70Akh__0UT004F4dsxYQqtiTTHm8RmhsSZb5_Qsfg=w640-h286&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;五、建立Controller&amp;nbsp;&lt;/div&gt;&lt;div&gt;測試用的，輸入jsp 檔名，轉到該jsp&lt;/div&gt;&lt;div&gt;jspPageName ，可為檔名。&lt;/div&gt;&lt;div&gt;如果在jsp資料夾下還有分層，也需要資料夾名稱。第七項做範例測試&lt;/div&gt;

&lt;pre class=&quot;codeblock&quot;&gt;package com.example.springbootjspdemo.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

@Controller
public class JspController {

    @GetMapping(&quot;/{jspPageName}&quot;)
    public String jspPage(@PathVariable String jspPageName){
        return jspPageName;
    }

}

&lt;/pre&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;註：@Controller 、@GetMapping 、@PathVariable 另文說明。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjJVY8zPCNE_bgyOhoRAHLW9dYc9b0glRwsUoH-MI2jca1xV0dfjZR-xQwTmeSJCKAMWi2ptg96qP9A8iRkiIdvgFzyHD-hSc9vJrLZqgbuybdxRPOZP24Ax9p2c_xH6XiBfOaMq3_Szxp0RLUIX-uclDEH0fhDUXuKl07Hx1f60Z6o4VfHP9gwGuICRw=s1171&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;547&quot; data-original-width=&quot;1171&quot; height=&quot;298&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjJVY8zPCNE_bgyOhoRAHLW9dYc9b0glRwsUoH-MI2jca1xV0dfjZR-xQwTmeSJCKAMWi2ptg96qP9A8iRkiIdvgFzyHD-hSc9vJrLZqgbuybdxRPOZP24Ax9p2c_xH6XiBfOaMq3_Szxp0RLUIX-uclDEH0fhDUXuKl07Hx1f60Z6o4VfHP9gwGuICRw=w640-h298&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;六、測試&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi9WXkMyFbiyrnkvxXoenB46BDTaoSah9-m4-8eXpRo4MpNLmGQlTST16gII06zjerxLBIA4ucSRN7p74gjhN3xPGNdGgZM3GUC83Lkq8g_8UKrnqU64mslw7DEVWtNZEIkuW-BQQSOWmadga5G5rT7kKKgN_F9E_vjjo4-A2xYBhiAqOQMP_H9birf-Q=s451&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;261&quot; data-original-width=&quot;451&quot; height=&quot;370&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEi9WXkMyFbiyrnkvxXoenB46BDTaoSah9-m4-8eXpRo4MpNLmGQlTST16gII06zjerxLBIA4ucSRN7p74gjhN3xPGNdGgZM3GUC83Lkq8g_8UKrnqU64mslw7DEVWtNZEIkuW-BQQSOWmadga5G5rT7kKKgN_F9E_vjjo4-A2xYBhiAqOQMP_H9birf-Q=w640-h370&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;七、測試jsp資料下，多層資料夾&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;jsp資料下，新增books資料夾，新增books.jsp&lt;/div&gt;&lt;div&gt;圖7&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgFjM1RTRgxe2otQ4CnFXO7POHflycFPofj5IDlw2KEykw8sYP5v7aEQKmCWgBCsklhAIIw2ZFWS60BSMdCfpJ7CUi2HL0ghjxsxm4YpIe1hjuHkZoxI8cvpVvT89xyx_DJUvhkPmHH5yceMbc3detGg4DYrQ6Ckvrg0thXchxoGoLtR6X1j4k9n-YV1Q=s1610&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;615&quot; data-original-width=&quot;1610&quot; height=&quot;244&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgFjM1RTRgxe2otQ4CnFXO7POHflycFPofj5IDlw2KEykw8sYP5v7aEQKmCWgBCsklhAIIw2ZFWS60BSMdCfpJ7CUi2HL0ghjxsxm4YpIe1hjuHkZoxI8cvpVvT89xyx_DJUvhkPmHH5yceMbc3detGg4DYrQ6Ckvrg0thXchxoGoLtR6X1j4k9n-YV1Q=w640-h244&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;八、新增Controller 內容&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;在JspController加入&lt;/div&gt;

&lt;pre class=&quot;codeblock&quot;&gt;  @GetMapping(&quot;/books/{jspPageName}&quot;)
    public String jspbooksPage(@PathVariable String jspPageName){
        System.out.println(jspPageName);
        return &quot;books/&quot;+jspPageName;
    }
&lt;/pre&gt;
&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;在return 我們加入books/，為books資料夾，而jspPageName 為books下的jsp檔名&lt;/div&gt;&lt;div&gt;圖8&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjvUxgm0WWuVwRAj9XnB6DtURJnQAmP2FjuTXsYWzV4dha5kPD3puGSz84ves414UJp7jcPHzPGcljRm4lD88w2yZk61mkSrTS6lr0FucrEcA9ccMQbRlyjsJUrRvDjMH0Yc5C3dNoIGp01YZwX0EAYR-JBZ8Mpq8rnONNUNDOy_ai92eaoPGOpyALs6w=s1233&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;544&quot; data-original-width=&quot;1233&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjvUxgm0WWuVwRAj9XnB6DtURJnQAmP2FjuTXsYWzV4dha5kPD3puGSz84ves414UJp7jcPHzPGcljRm4lD88w2yZk61mkSrTS6lr0FucrEcA9ccMQbRlyjsJUrRvDjMH0Yc5C3dNoIGp01YZwX0EAYR-JBZ8Mpq8rnONNUNDOy_ai92eaoPGOpyALs6w=w640-h282&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;九、測試&lt;/div&gt;&lt;div&gt;圖9&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjGmR50yo_ZC09Y-ny0JbCGTo0b7Ii0v0TbS9Bu5Ry-zLmMtH3EfKZs-nhJ6-FRHwU-S4_d85QCbJSkNBqFboLDLIRs044xfXQtxE7gQf6dN6H0zO0uo-pocZmPRwpPIlZn-xyqpbDw0jb8PzCYik-jtWiY96YF7CHSKy6vN2Nfu5F5YogK0qzYW-Te2A=s606&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;211&quot; data-original-width=&quot;606&quot; height=&quot;222&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjGmR50yo_ZC09Y-ny0JbCGTo0b7Ii0v0TbS9Bu5Ry-zLmMtH3EfKZs-nhJ6-FRHwU-S4_d85QCbJSkNBqFboLDLIRs044xfXQtxE7gQf6dN6H0zO0uo-pocZmPRwpPIlZn-xyqpbDw0jb8PzCYik-jtWiY96YF7CHSKy6vN2Nfu5F5YogK0qzYW-Te2A=w640-h222&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/43838a83a9f7954c32907fd7d61864c70c4f83b0/spring-boot-jsp-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;相關文章：&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-controller-annotation.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 Controller Annotation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-restcontroller.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 RestController Annotation&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-controller-method.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 Controller 常用annotation&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6329121587260366239/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-jsp.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6329121587260366239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6329121587260366239'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-jsp.html' title='Spring Boot web 專案使用jsp '/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgg-3jhDQyVnTpHM3qL1gj_XCVLMckrEipA31SkMGV4KtK4gtqbqtIv_A-QQbepbkxOSwr1dKYhHd1xgVW95hnz1Va5DOhroiSX3loXDLwZm6uDPgMT0-ipGhNcxWmkJF4re-Y_Z8QEJsCKGm5VCMH8xIZRdzv2a3e2Q2p0A5Tv7HvIgRHMldNnKKGNZQ=s72-w640-h186-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-6187110298005568914</id><published>2022-02-09T11:38:00.001+08:00</published><updated>2022-02-09T11:38:04.291+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="WebJars"/><title type='text'>Spring Boot web 專案 jQuery 設定</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;文本續上一篇&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-web-webjars.html&quot; target=&quot;_blank&quot;&gt;Spring Boot web 專案 靜態檔 webjars 基本應用&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;學會了使用 webjars 後。&lt;/div&gt;&lt;div&gt;本文說明一下jQuery設定。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、引用 jQuery&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;pom.xml -&amp;gt; dependency&lt;/div&gt;&lt;div&gt;加入 jquery及jquery-ui&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;groupId&amp;gt;org.webjars&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;artifactId&amp;gt;jquery-ui&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;version&amp;gt;1.13.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;groupId&amp;gt;org.webjars&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;artifactId&amp;gt;jquery&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;version&amp;gt;3.6.0&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQ7GdcruQTAZK6u7hXUlRkCAF-q4MrBuNIyX0Js-fQzWluAyvMrau43QvSmKeyfPL25XL68a1nhqSFyUFmImNg8FecDkOY_my2jm5CZi7rufyI6AWylkJq56wEa-WM7WHTiRd9IouhW5K3H-t7Xn48ZvtaqnB5oWoi6NL7OWoJYBNrEPokdoazotwPPQ=s1086&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;639&quot; data-original-width=&quot;1086&quot; height=&quot;376&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiQ7GdcruQTAZK6u7hXUlRkCAF-q4MrBuNIyX0Js-fQzWluAyvMrau43QvSmKeyfPL25XL68a1nhqSFyUFmImNg8FecDkOY_my2jm5CZi7rufyI6AWylkJq56wEa-WM7WHTiRd9IouhW5K3H-t7Xn48ZvtaqnB5oWoi6NL7OWoJYBNrEPokdoazotwPPQ=w640-h376&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、範例及測試&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;內容範例來源&lt;/div&gt;&lt;div&gt;https://cdn.jsdelivr.net/webjars/org.webjars/jquery-ui/1.13.0/index.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh_67JsS9kSnqI7Tv21pZCg_IIyv96LRZtJy-2qzwwpBVmuMYjEd4ddgVFSkCDVUrGfNXZ-WN6xsV7Z5-ZQAtGitFqjv8mdOXeNC4kQ--cfZp3kASszUCIFOQZtrCEabZ5bnnncclU8BFAc5_lI9dzhe9I4Uxew6-S_-v3Zz8XQ6o-YKbPhmNJ63iRPCg=s1312&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;790&quot; data-original-width=&quot;1312&quot; height=&quot;386&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh_67JsS9kSnqI7Tv21pZCg_IIyv96LRZtJy-2qzwwpBVmuMYjEd4ddgVFSkCDVUrGfNXZ-WN6xsV7Z5-ZQAtGitFqjv8mdOXeNC4kQ--cfZp3kASszUCIFOQZtrCEabZ5bnnncclU8BFAc5_lI9dzhe9I4Uxew6-S_-v3Zz8XQ6o-YKbPhmNJ63iRPCg=w640-h386&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div data-en-clipboard=&quot;true&quot; data-pm-slice=&quot;1 1 []&quot;&gt;圖2-1 在 jquery-ui jar 也可以找到&lt;/div&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjl_-3xeFace1MKNFyLGn_9815fwOdo3_xP4GZ3vx7Fe8TAFA__L-kqYqOfy1rxx9ajOx7o084fDiSKAp4uw5JiEVloEzlR8EhnTREmciw5IYQKc2F_o74ryTqnbR7X9nlcH0F9C8qizjw-mTNI3aq5Jy7-cZaDCiAedlxPcBy7qXSyT38vw1nBAQ-FCQ=s1114&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;676&quot; data-original-width=&quot;1114&quot; height=&quot;388&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjl_-3xeFace1MKNFyLGn_9815fwOdo3_xP4GZ3vx7Fe8TAFA__L-kqYqOfy1rxx9ajOx7o084fDiSKAp4uw5JiEVloEzlR8EhnTREmciw5IYQKc2F_o74ryTqnbR7X9nlcH0F9C8qizjw-mTNI3aq5Jy7-cZaDCiAedlxPcBy7qXSyT38vw1nBAQ-FCQ=w640-h388&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div data-en-clipboard=&quot;true&quot; data-pm-slice=&quot;1 1 []&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本專案在static資料夾下，新增jquery資料夾，新增jquery-ui-example.html&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖3&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;在head加入以下：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&amp;lt;script src=&quot;/webjars/jquery/jquery.min.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;script src=&quot;/webjars/jquery-ui/jquery-ui.js&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;link href=&quot;/webjars/jquery-ui/jquery-ui.css&quot; rel=&quot;stylesheet&quot;&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjcdmcm7c_DNx_tIrHpJWoWGP86mY9PHDKm8y9ZfHqP2yH3X0FA0fcYIdBkj-GcFzqlFR2RezRhrRXnaoHxLR9gw0MAG_BsjscZyxjQXMGGCQnVlvAYQz4D_YCf8uNe-m5jxYgxy5FQ_2qcwAK6Ny0S-msXVn4HUqZSxgjs0qcDDfPCdol3RHJ6QUzflA=s1218&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;484&quot; data-original-width=&quot;1218&quot; height=&quot;254&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjcdmcm7c_DNx_tIrHpJWoWGP86mY9PHDKm8y9ZfHqP2yH3X0FA0fcYIdBkj-GcFzqlFR2RezRhrRXnaoHxLR9gw0MAG_BsjscZyxjQXMGGCQnVlvAYQz4D_YCf8uNe-m5jxYgxy5FQ_2qcwAK6Ny0S-msXVn4HUqZSxgjs0qcDDfPCdol3RHJ6QUzflA=w640-h254&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 執行 http://localhost:8080/jquery/jquery-ui-example.html&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;看到&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVbivQ_1n1beqpVmUI-I63Ba42M_CDWyo_pttb90ODFTCtko-hmFEMGgZTNZnacH5m7l5IfjnvYHxcXakO33s6FJxfbwwyO6BiiHhVotjKlBkOUPpW2uU3c6SbuOHmAadP1Ok3y4umfPqVHjwBQhObeJzMJNQ49rjrnolFl17qVBCM5SIBBSNaWqDl-Q=s1875&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1002&quot; data-original-width=&quot;1875&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhVbivQ_1n1beqpVmUI-I63Ba42M_CDWyo_pttb90ODFTCtko-hmFEMGgZTNZnacH5m7l5IfjnvYHxcXakO33s6FJxfbwwyO6BiiHhVotjKlBkOUPpW2uU3c6SbuOHmAadP1Ok3y4umfPqVHjwBQhObeJzMJNQ49rjrnolFl17qVBCM5SIBBSNaWqDl-Q=w640-h342&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 看到Dialog 及 Datepicker 效果還不錯吧!&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgh3SHxsQPb_bJDv9VDnr5z-qeFv-s5y-tYeFRmKQob0wZshTClhIcrXcAGuP06G_TGBS8NlrltO8yV-fjniaUeo6QwZ4jr4ooTdD1x7xquvHlZhPZqSNl_nLI9PF6Rn-OKcYiWDLhXVGE6jjX1Es6rG9pgUYik5v9MukcsoK971OTn7LH_3QlSpKOUzQ=s1686&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;988&quot; data-original-width=&quot;1686&quot; height=&quot;376&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgh3SHxsQPb_bJDv9VDnr5z-qeFv-s5y-tYeFRmKQob0wZshTClhIcrXcAGuP06G_TGBS8NlrltO8yV-fjniaUeo6QwZ4jr4ooTdD1x7xquvHlZhPZqSNl_nLI9PF6Rn-OKcYiWDLhXVGE6jjX1Es6rG9pgUYik5v9MukcsoK971OTn7LH_3QlSpKOUzQ=w640-h376&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;以上就簡單說明jquery及jquery-ui的設定。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如何使用呢?可以看看範例程式。&lt;/div&gt;&lt;div&gt;以後在文章中有使用到會說明。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/a185338cec205228042d5167bd8cdcbbdc19b52f/spring-boot-webjars-jquery-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/6187110298005568914/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-jquery.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6187110298005568914'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/6187110298005568914'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-jquery.html' title='Spring Boot web 專案 jQuery 設定'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiQ7GdcruQTAZK6u7hXUlRkCAF-q4MrBuNIyX0Js-fQzWluAyvMrau43QvSmKeyfPL25XL68a1nhqSFyUFmImNg8FecDkOY_my2jm5CZi7rufyI6AWylkJq56wEa-WM7WHTiRd9IouhW5K3H-t7Xn48ZvtaqnB5oWoi6NL7OWoJYBNrEPokdoazotwPPQ=s72-w640-h376-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-957439521869845084</id><published>2022-02-08T22:47:00.001+08:00</published><updated>2022-02-09T09:40:40.088+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><category scheme="http://www.blogger.com/atom/ns#" term="WebJars"/><title type='text'>Spring Boot web 專案 靜態檔 WebJars基本應用</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Spring Boot 裡面預設也會加入WebJars的靜態資料夾。/META-INF/resources/webjars/&lt;/div&gt;&lt;div&gt;spring-boot-autoconfigure-xxx.jar-&amp;gt;&lt;/div&gt;&lt;div&gt;org.springframework.boot.autoconfigure.web.servlet-&amp;gt;WebMvcAutoConfiguration-&amp;gt;WebMvcAutoConfigurationAdapter-&amp;gt;addResourceHandlers&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG7RXa9wiN9XrhZ8yPx3mpWWLY5tyM6PxsmZN2LBbAE_5Cw5XrY15sgAq70BXzk9r9WRoOv2uDB8E4IFe6VG0KyHdh6H04RfgsSW9J_hKjAoG56zlfPcHsRkRPGaulx4zSbqfu1cYcVuAH7WhBpwvKXboTpBjmUjRoR0JLxymseQbzib4HtxW8wMz8Rg/s1605/1.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;861&quot; data-original-width=&quot;1605&quot; height=&quot;344&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG7RXa9wiN9XrhZ8yPx3mpWWLY5tyM6PxsmZN2LBbAE_5Cw5XrY15sgAq70BXzk9r9WRoOv2uDB8E4IFe6VG0KyHdh6H04RfgsSW9J_hKjAoG56zlfPcHsRkRPGaulx4zSbqfu1cYcVuAH7WhBpwvKXboTpBjmUjRoR0JLxymseQbzib4HtxW8wMz8Rg/w640-h344/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;WebJars將所有前端的靜態文件打包成一個jar包，這樣能很好的對前端靜態資源進行管理。&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.webjars.org/&quot; target=&quot;_blank&quot;&gt;WebJars官網&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAy3kRE7EeKgKXp5qSr9xsUDdBcbKCSi-8iO7VGkpuUzKjD2iMvl1rCknDlwEj-IZUf2oPoZoagbJzPIaI9yLlfTpTG_R1t0PUuDULdheldNWIVo5PvHZ6RPB4FDVDiiQ5I5m89BFoQ4xmn6RQOjX7ic8vBKWY6nzv_OtMI4FfgHs4aEbL3ThRPS-z1w/s1876/2.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1023&quot; data-original-width=&quot;1876&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAy3kRE7EeKgKXp5qSr9xsUDdBcbKCSi-8iO7VGkpuUzKjD2iMvl1rCknDlwEj-IZUf2oPoZoagbJzPIaI9yLlfTpTG_R1t0PUuDULdheldNWIVo5PvHZ6RPB4FDVDiiQ5I5m89BFoQ4xmn6RQOjX7ic8vBKWY6nzv_OtMI4FfgHs4aEbL3ThRPS-z1w/w640-h348/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在webjars的網站中，講到了四種應用webjars的方式，分別為NPM WebJars、Bower GitHub WebJars、Classic WebJar、Bower Original WebJars&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div&gt;本文使用Classic WebJar來介紹使用&lt;/div&gt;&lt;div&gt;專案使用Maven專案&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7EP8MY8gZTLhvzgEKOIKuMF9pypN7R61uc3s5dIRUnBh9q-3vpKzd5jln3XYq2dqLE7wOE0DkOmaAtMspM5rvMdZP8cZH787KO7xKVGsFR9aUX94aDyDBPpYDFzuX2JkBZkogE63Eb4Fw5sxovZKsEzexZDFmUBz-Yl6cM9CMALWOZrIT-dy5HEh9mw/s1909/3.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1022&quot; data-original-width=&quot;1909&quot; height=&quot;342&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7EP8MY8gZTLhvzgEKOIKuMF9pypN7R61uc3s5dIRUnBh9q-3vpKzd5jln3XYq2dqLE7wOE0DkOmaAtMspM5rvMdZP8cZH787KO7xKVGsFR9aUX94aDyDBPpYDFzuX2JkBZkogE63Eb4Fw5sxovZKsEzexZDFmUBz-Yl6cM9CMALWOZrIT-dy5HEh9mw/w640-h342/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 使用Bootstrap來做測試&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmHFbNLL8xRo3yr6z9hXXRkRfHUMMjoXRzBS1euzaiUAIZaaJr7JkPr8CdPaH0dx-v9XigWsY9deq6Vo_MGzTKy4I00qxhRO-2xrdUV1UUJ_ttzdjGI1nW1g5Wf8oROg7onmZEKIeV_t2B27TScjN8mnmHrPtLoAPT16CaI_lYHCo8Ouz8_jYI4ZjQA/s1882/4.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;110&quot; data-original-width=&quot;1882&quot; height=&quot;38&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLmHFbNLL8xRo3yr6z9hXXRkRfHUMMjoXRzBS1euzaiUAIZaaJr7JkPr8CdPaH0dx-v9XigWsY9deq6Vo_MGzTKy4I00qxhRO-2xrdUV1UUJ_ttzdjGI1nW1g5Wf8oROg7onmZEKIeV_t2B27TScjN8mnmHrPtLoAPT16CaI_lYHCo8Ouz8_jYI4ZjQA/w640-h38/4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 新增 pom.xml&amp;nbsp; dependency&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;lt;dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;groupId&amp;gt;org.webjars&amp;lt;/groupId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;artifactId&amp;gt;bootstrap&amp;lt;/artifactId&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;nbsp; &amp;lt;version&amp;gt;5.1.3&amp;lt;/version&amp;gt;&lt;/div&gt;&lt;div&gt;&amp;lt;/dependency&amp;gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yFOXq6TODEO93KGUPSWr5JKUJi9VFTwymqNXpM3kejzJMNkHWHYR8ejJSvMgNLqAjV_lnDfcUkZMYR3dkl2Hw3NhCUUtJMjaPGnM00iFVhLmg3XdNODKK2M0oYnuvYGEMHiLYGGRowQoUWG3gZEIRgGv98OVM9zcCfdP--9rdTH_2y1ubTCLnKlfHQ/s789/5.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;397&quot; data-original-width=&quot;789&quot; height=&quot;201&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj0yFOXq6TODEO93KGUPSWr5JKUJi9VFTwymqNXpM3kejzJMNkHWHYR8ejJSvMgNLqAjV_lnDfcUkZMYR3dkl2Hw3NhCUUtJMjaPGnM00iFVhLmg3XdNODKK2M0oYnuvYGEMHiLYGGRowQoUWG3gZEIRgGv98OVM9zcCfdP--9rdTH_2y1ubTCLnKlfHQ/w400-h201/5.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 新增測試用的html&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZAQupFfI7lllezaX3DxYLmWJq38_Oki6qImRF_0N6WAOBDXWYajA_NFa_0Z6lqsRyxPmYdpwpIRX4KqcvUQMjghDj7z9u7XzXAKUGMqI_glrJgBmKr7yfqMKoM4WE-NNDWJUHhi3LTCCkWSvtwvVCMct083w6Nsb_F8PTx_cWsvi5kLfXumCRgk9fg/s580/6.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;483&quot; data-original-width=&quot;580&quot; height=&quot;333&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJZAQupFfI7lllezaX3DxYLmWJq38_Oki6qImRF_0N6WAOBDXWYajA_NFa_0Z6lqsRyxPmYdpwpIRX4KqcvUQMjghDj7z9u7XzXAKUGMqI_glrJgBmKr7yfqMKoM4WE-NNDWJUHhi3LTCCkWSvtwvVCMct083w6Nsb_F8PTx_cWsvi5kLfXumCRgk9fg/w400-h333/6.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖7 範例來源&lt;/div&gt;&lt;div&gt;bootstrap Examples&amp;nbsp; -&amp;gt;Custom Components -&amp;gt; Sign-in&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://getbootstrap.com/docs/5.0/examples/&quot; target=&quot;_blank&quot;&gt;https://getbootstrap.com/docs/5.0/examples/&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVgm1yLB0BJK3F_NHqjk_a0I7-dyJjDHbW2xiC9eK-923vzeRSM6RS1f-g4rkMSyPdG1Mhr45QO5X6QEOXOtldT9VKs_kSotlEW84uroJr-l7olvtZrgP368RA-GpFUio1QyFNpSon2AKSfBKoPsp4HfHkVQDpvvvtzTaMesqc-nSWOyzMpOejGj0LOg/s1570/7.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1013&quot; data-original-width=&quot;1570&quot; height=&quot;258&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhVgm1yLB0BJK3F_NHqjk_a0I7-dyJjDHbW2xiC9eK-923vzeRSM6RS1f-g4rkMSyPdG1Mhr45QO5X6QEOXOtldT9VKs_kSotlEW84uroJr-l7olvtZrgP368RA-GpFUio1QyFNpSon2AKSfBKoPsp4HfHkVQDpvvvtzTaMesqc-nSWOyzMpOejGj0LOg/w400-h258/7.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖8 index.html 使用 webjars 裡的bootstrap&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/webjars/bootstrap/5.1.3/css/bootstrap.min.css&quot; /&amp;gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizgWHHl6X08kAUsnrQrV5eQoHC-aRW1CYrumSyPbSLtmLWq76Abp5nYSKIGhOK-J1TuScJ81Fnbte4JKFSemnaEhdOKizKR0THbNqLfn6e_deOFHx5Fh4spYnZe-naNSjrITLAko74Xa59S9Z8YF3N3uQgrnLL8iyRxVT3whYHujYKsytrxtrNg9i7Ug/s1820/8.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;655&quot; data-original-width=&quot;1820&quot; height=&quot;230&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizgWHHl6X08kAUsnrQrV5eQoHC-aRW1CYrumSyPbSLtmLWq76Abp5nYSKIGhOK-J1TuScJ81Fnbte4JKFSemnaEhdOKizKR0THbNqLfn6e_deOFHx5Fh4spYnZe-naNSjrITLAko74Xa59S9Z8YF3N3uQgrnLL8iyRxVT3whYHujYKsytrxtrNg9i7Ug/w640-h230/8.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖9 測試&lt;/div&gt;&lt;div&gt;http://localhost:8080/sign-in/index.html&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6293ZSuoqayy1orFeMh9S6F8goIgKzH4tdFBTtGe9MCGEqCmTIW2XMlyUzT6lQrHYoVI_-Hveu2EQZUIHnHDh1NmTYKMGSdJPxiAClsoerKa7M_PwSt4T6YVdPmT9FRHzbDGaG_KdRUCvPMlKmYma21VwvUYZ1u-SJkljSoBedvZ6BlC7UUqFfgNZ7w/s1385/9.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;775&quot; data-original-width=&quot;1385&quot; height=&quot;358&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6293ZSuoqayy1orFeMh9S6F8goIgKzH4tdFBTtGe9MCGEqCmTIW2XMlyUzT6lQrHYoVI_-Hveu2EQZUIHnHDh1NmTYKMGSdJPxiAClsoerKa7M_PwSt4T6YVdPmT9FRHzbDGaG_KdRUCvPMlKmYma21VwvUYZ1u-SJkljSoBedvZ6BlC7UUqFfgNZ7w/w640-h358/9.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖10 如果專案變大了，頁面變多，版本更新網頁還要去調整。&lt;/div&gt;&lt;div&gt;webjars 提供了一個便利包。&lt;/div&gt;&lt;div&gt;使用 Spring Boot 時，webjars-locator-core 庫它會自動檢測類路徑上的版本 ，並使用它為您自動解析任何 WebJar 資產的版本&lt;/div&gt;&lt;div&gt;以後你在pom.xml&amp;nbsp; bootstrap version 更新，會自動切換。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://www.webjars.org/documentation#springboot&quot; target=&quot;_blank&quot;&gt;https://www.webjars.org/documentation#springboot&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBYDbdLKLf5Z_R_B7vLf9n8wN1PBrR6IQK6R9Ac65Sk5emXqECR8j1zqBnIe9EpxZkV-olKQy2ldu8n17xGAKqfUVL38nPhKpP9R5xpod2tHhIpEtQ6qncj3MpXh3_nHFfBzGKuejKQpJ3VSrR6H81ib3QiS6EryDZLgpIZj-yBPyRkE5QBEnEHgc3aQ/s1880/10.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;970&quot; data-original-width=&quot;1880&quot; height=&quot;330&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBYDbdLKLf5Z_R_B7vLf9n8wN1PBrR6IQK6R9Ac65Sk5emXqECR8j1zqBnIe9EpxZkV-olKQy2ldu8n17xGAKqfUVL38nPhKpP9R5xpod2tHhIpEtQ6qncj3MpXh3_nHFfBzGKuejKQpJ3VSrR6H81ib3QiS6EryDZLgpIZj-yBPyRkE5QBEnEHgc3aQ/w640-h330/10.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖11 加入pom.xml&amp;nbsp; dependency&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoodcGSLUCQoEhNQU2gSMhp7uzz2iCpg-leBf2L7mV1MRTiKVWRVqHvL_pvCaJJh8ZleKTmzWjxMJC62oTA9PON7gMNGMP3h7kr_t9SNoVmJXbHUGawaRaOf-v9M7yXIiY69PeXoPAd2quVInSzqrXhL1y61ElH5Xu_QXitg8pyQrVWLy0aF1z1gF-mw/s942/11.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;633&quot; data-original-width=&quot;942&quot; height=&quot;430&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoodcGSLUCQoEhNQU2gSMhp7uzz2iCpg-leBf2L7mV1MRTiKVWRVqHvL_pvCaJJh8ZleKTmzWjxMJC62oTA9PON7gMNGMP3h7kr_t9SNoVmJXbHUGawaRaOf-v9M7yXIiY69PeXoPAd2quVInSzqrXhL1y61ElH5Xu_QXitg8pyQrVWLy0aF1z1gF-mw/w640-h430/11.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖12 index.html 使用 webjars 裡的bootstrap 的版本號去掉&lt;/div&gt;&lt;div&gt;原本&lt;/div&gt;&lt;div&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/webjars/bootstrap/5.1.3/css/bootstrap.min.css&quot; /&amp;gt;&lt;/div&gt;&lt;div&gt;改為&lt;/div&gt;&lt;div&gt;&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;/webjars/bootstrap/css/bootstrap.min.css&quot; /&amp;gt;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh63YHJeRB8um6929XpNUaEw8PP1ocJq_ZCnas4VCe9rDUVaOBCPlVMuvsn7iiEk2oPcUyEh0huqW0P3BqnNGCoou5k9K1MxQJNcdw6dygllddExANwMHdebWxDHI1aVCEfDpAVrJlzx0F2PBEO3Qpf0CfN3OAYfbA1MQgN8igDiasvNvbEUY7rcMN0wQ/s1704/12.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;682&quot; data-original-width=&quot;1704&quot; height=&quot;256&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh63YHJeRB8um6929XpNUaEw8PP1ocJq_ZCnas4VCe9rDUVaOBCPlVMuvsn7iiEk2oPcUyEh0huqW0P3BqnNGCoou5k9K1MxQJNcdw6dygllddExANwMHdebWxDHI1aVCEfDpAVrJlzx0F2PBEO3Qpf0CfN3OAYfbA1MQgN8igDiasvNvbEUY7rcMN0wQ/w640-h256/12.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;圖13 測試 http://localhost:8080/sign-in/index.html&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGgDXxZVAIK4iJn__sEHwNk_Q3qmX7x62v8V7lx48IN-VfarbVXdwy1Gxrgv_lJv-KhgRtTLLNpMY45UJa9JHezfhLyTIWKHWAIVju4AaLTqHRp3TwH_OzYmXPXOEFvSLU7KUD7dH8uBjWax0bapbcDja1v0InBo_fHNm3HfFlEUSlrLFgolzjfnwKog/s1583/13.png&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;820&quot; data-original-width=&quot;1583&quot; height=&quot;332&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGgDXxZVAIK4iJn__sEHwNk_Q3qmX7x62v8V7lx48IN-VfarbVXdwy1Gxrgv_lJv-KhgRtTLLNpMY45UJa9JHezfhLyTIWKHWAIVju4AaLTqHRp3TwH_OzYmXPXOEFvSLU7KUD7dH8uBjWax0bapbcDja1v0InBo_fHNm3HfFlEUSlrLFgolzjfnwKog/w640-h332/13.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div data-en-clipboard=&quot;true&quot; data-pm-slice=&quot;1 1 []&quot;&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/bee01f40acbdd8195c626b03f44a373d40f7d84a/spring-boot-webjars-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;br /&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/957439521869845084/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-webjars.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/957439521869845084'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/957439521869845084'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-webjars.html' title='Spring Boot web 專案 靜態檔 WebJars基本應用'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgG7RXa9wiN9XrhZ8yPx3mpWWLY5tyM6PxsmZN2LBbAE_5Cw5XrY15sgAq70BXzk9r9WRoOv2uDB8E4IFe6VG0KyHdh6H04RfgsSW9J_hKjAoG56zlfPcHsRkRPGaulx4zSbqfu1cYcVuAH7WhBpwvKXboTpBjmUjRoR0JLxymseQbzib4HtxW8wMz8Rg/s72-w640-h344-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-3850771478287889802</id><published>2022-02-08T20:43:00.000+08:00</published><updated>2022-02-08T20:43:09.957+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案 靜態資源 簡介</title><content type='html'>&lt;div&gt;18-Spring Boot web 專案 靜態資源 簡介&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文說明Spring Boot web 專案如何取得靜態資源。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;一、我們先來看Spring Boot原檔。&lt;/div&gt;&lt;div&gt;你在 spring-boot-autoconfigure-xxx.jar 裡面可以找到靜態資源，預設資料夾的設定。&lt;/div&gt;&lt;div&gt;package 是 org.springframework.boot.autoconfigure.web&lt;/div&gt;&lt;div&gt;WebProperties.java 中的 public static class Resources裡的 CLASSPATH_RESOURCE_LOCATIONS&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOTUJHd2WZBdx5jw1hsFdgE7XBNZDE33fPuaQ7XZM6P_WhBv5dXZeuUEZDCah90QbYIyPiTfa_z68kn2ni2kx4jViYeebtYcgD48IDkGPrCaT7zkPIREWKIewwwIDjDPJ51HDV06BrYqgq3Mq8eePh_peyfokFeupcdHlXpJV9yKbbU60qU5UZhNd_CA/s1619/1.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;851&quot; data-original-width=&quot;1619&quot; height=&quot;336&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOTUJHd2WZBdx5jw1hsFdgE7XBNZDE33fPuaQ7XZM6P_WhBv5dXZeuUEZDCah90QbYIyPiTfa_z68kn2ni2kx4jViYeebtYcgD48IDkGPrCaT7zkPIREWKIewwwIDjDPJ51HDV06BrYqgq3Mq8eePh_peyfokFeupcdHlXpJV9yKbbU60qU5UZhNd_CA/w640-h336/1.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;二、預設的 static resources.&amp;nbsp;&lt;/div&gt;&lt;div&gt;classpath:[/META-INF/resources/, /resources/, /static/, /public/].&lt;/div&gt;&lt;div&gt;這4個資料夾都存在，會有優先順序：/META-INF/resources&amp;gt;resources&amp;gt;static&amp;gt;public&lt;/div&gt;&lt;div&gt;有二個以上的資料夾只會讀取其中一個依順序。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;當新增專案時，預設在src.main.resources 下會預生產static資料夾&lt;/div&gt;&lt;div&gt;新增專案可以參考：&amp;nbsp; &lt;a href=&quot;https://pclevin.blogspot.com/2022/01/springboot-idea.html&quot; target=&quot;_blank&quot;&gt;Spring Boot 開發工具IDEA 及基本專案簡介&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfwSzQCvfWhRH89nrJUU-HFc-0R37NiMD2v9f6-SwuB4ecQj7AjqXuBJjldTFUkIIS1AtVmwsOmjGeAvivKdBe926pAuKWNf0__XIQ7nMyu6olnv0DopuzpqzQuLiwzCbog-M00inc4wQJZmu62oSjxz4Wz8Q7bX-FAZRjEVq-LkwsfOJ5JQdlHhehA/s498/2.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;368&quot; data-original-width=&quot;498&quot; height=&quot;472&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgfwSzQCvfWhRH89nrJUU-HFc-0R37NiMD2v9f6-SwuB4ecQj7AjqXuBJjldTFUkIIS1AtVmwsOmjGeAvivKdBe926pAuKWNf0__XIQ7nMyu6olnv0DopuzpqzQuLiwzCbog-M00inc4wQJZmu62oSjxz4Wz8Q7bX-FAZRjEVq-LkwsfOJ5JQdlHhehA/w640-h472/2.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如你有要放js、css及圖片等。都可以放入，由web專案頁面取得&lt;/div&gt;&lt;div&gt;本文測試專案資料夾如下&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqtxeCj555ERnMUMfMFwklNsj325PsuCeGzuOYNeLnnLrhwJ58R7ao9DaDsrqB-kkTmr5rzfk5WCf7IzsXZSbfYlRO9s5isxoNHKNkWvraUeyUli4KhguAt3CHqf_k2whxALu6lBMeUwzZq6ztWjy5LljZ956eQFqY9eESaZaukodMUrT9ZPDiHoN9xQ/s1451/3.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;830&quot; data-original-width=&quot;1451&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhqtxeCj555ERnMUMfMFwklNsj325PsuCeGzuOYNeLnnLrhwJ58R7ao9DaDsrqB-kkTmr5rzfk5WCf7IzsXZSbfYlRO9s5isxoNHKNkWvraUeyUli4KhguAt3CHqf_k2whxALu6lBMeUwzZq6ztWjy5LljZ956eQFqY9eESaZaukodMUrT9ZPDiHoN9xQ/w640-h366/3.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;測試&lt;/div&gt;&lt;div&gt;圖4&lt;/div&gt;&lt;div&gt;http://localhost:8080/css/catcss.css&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3aeVbuWw_hudvW7hOenltRNUT9OKSNDz9qhihjByb_9eP2-a3n9xb9dsLLCuC-fJORuI5L0YVSScfGtNo0VbT09WH7GJWzTBBFf8DqljItYUW9ur_ueXNos5M91XsWsE_0oIggY0VQc0WCTT3OutiWRspoTIHKTUzgHp1FspP3uD73L1s3OuemJGnQ/s417/4.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;129&quot; data-original-width=&quot;417&quot; height=&quot;198&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjH3aeVbuWw_hudvW7hOenltRNUT9OKSNDz9qhihjByb_9eP2-a3n9xb9dsLLCuC-fJORuI5L0YVSScfGtNo0VbT09WH7GJWzTBBFf8DqljItYUW9ur_ueXNos5M91XsWsE_0oIggY0VQc0WCTT3OutiWRspoTIHKTUzgHp1FspP3uD73L1s3OuemJGnQ/w640-h198/4.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5&lt;/div&gt;&lt;div&gt;http://localhost:8080/img/cat.png&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDry3V4fActwXmZoWWO5D5I7M_fgVX7OtIJRaIgYJkdOX87ZdyrKKQPoWZ7cek6zmgGV1VYXMZEGaJBtYhz-376Stc6wCcMu184tZoYhlVbdaLzbx85MSKi3SQ3tuVRcuYoT9PSdEJV67XXAQVhZmbQ27D94P6rrwcMxfjwQ3wvXs0UtlX85MqDOBoqQ/s1847/5.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1002&quot; data-original-width=&quot;1847&quot; height=&quot;348&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjDry3V4fActwXmZoWWO5D5I7M_fgVX7OtIJRaIgYJkdOX87ZdyrKKQPoWZ7cek6zmgGV1VYXMZEGaJBtYhz-376Stc6wCcMu184tZoYhlVbdaLzbx85MSKi3SQ3tuVRcuYoT9PSdEJV67XXAQVhZmbQ27D94P6rrwcMxfjwQ3wvXs0UtlX85MqDOBoqQ/w640-h348/5.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6&lt;/div&gt;&lt;div&gt;http://localhost:8080/js/catjs.js&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKcKkj2AjoaMp2nBpOfs5u_2z30M8YaBePJoq_oPEEfWEdF-LQvn28NwUBfzljWVpZOSWCpNJGyEcaAmx1TImCDzdvr59HNIU4yZzbwVWnSD2cVH2q0N30KVvwRf_391TEHJUFTwVS6t6yR7qtpxyXWRquoduYqDHyJv_1Nq9Zyk3hab3SDxf7ehZg_w/s587/6.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;173&quot; data-original-width=&quot;587&quot; height=&quot;188&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKcKkj2AjoaMp2nBpOfs5u_2z30M8YaBePJoq_oPEEfWEdF-LQvn28NwUBfzljWVpZOSWCpNJGyEcaAmx1TImCDzdvr59HNIU4yZzbwVWnSD2cVH2q0N30KVvwRf_391TEHJUFTwVS6t6yR7qtpxyXWRquoduYqDHyJv_1Nq9Zyk3hab3SDxf7ehZg_w/w640-h188/6.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;三、自定義靜態資源資料夾&lt;/div&gt;&lt;div&gt;如果是要設定這二個&lt;/div&gt;&lt;div&gt;spring.web.resources.static-locations&lt;/div&gt;&lt;div&gt;spring.mvc.static-path-pattern&lt;/div&gt;&lt;div&gt;本文調整為 classpath:/teststatic/,classpath:/static/&lt;/div&gt;&lt;div&gt;cat.png 保留放在 /static/&lt;/div&gt;&lt;div&gt;另新增teststatic資料夾及css跟js資料&lt;/div&gt;&lt;div&gt;圖7&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTN2t1vXtkj_UE9E4zSGQ4sIG_SYiY5ksXuXBoxwaTSj0n1RNSxGaENgrQi72p_mHIgcYIMJ40RdaKPgIRDkMb04LDTzhJJ_MZUYmiDDIQYO29VmadpYnQQhJKq8AMZY1HrjBNV8mxUABMnMisztJX8dYTdsg2389qmJOt9NHnkb6Vu0Wktz564Nr8Aw/s1267/7.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;559&quot; data-original-width=&quot;1267&quot; height=&quot;282&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTN2t1vXtkj_UE9E4zSGQ4sIG_SYiY5ksXuXBoxwaTSj0n1RNSxGaENgrQi72p_mHIgcYIMJ40RdaKPgIRDkMb04LDTzhJJ_MZUYmiDDIQYO29VmadpYnQQhJKq8AMZY1HrjBNV8mxUABMnMisztJX8dYTdsg2389qmJOt9NHnkb6Vu0Wktz564Nr8Aw/w640-h282/7.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;測試&lt;/div&gt;&lt;div&gt;圖8&lt;/div&gt;&lt;div&gt;http://localhost:8080/css/catcss.css&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_pdZaYPtrBFiPEUesUALusdEd4npyhWd2TN1uI2YQ9kfZISwwVCRvYhMVrACpC0gcwU4Z3Gp6-exV5ZH61BaqVA0RqBvmK070ImA-Ec-0P2jMu7L1ZaObsA35NX43WVf06JLpn6wkyB8UawCak2rxEdAzGZKfe3yHwDjjyMItOndJCkFtlGqPpIktZA/s564/8.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;208&quot; data-original-width=&quot;564&quot; height=&quot;236&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_pdZaYPtrBFiPEUesUALusdEd4npyhWd2TN1uI2YQ9kfZISwwVCRvYhMVrACpC0gcwU4Z3Gp6-exV5ZH61BaqVA0RqBvmK070ImA-Ec-0P2jMu7L1ZaObsA35NX43WVf06JLpn6wkyB8UawCak2rxEdAzGZKfe3yHwDjjyMItOndJCkFtlGqPpIktZA/w640-h236/8.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖9&lt;/div&gt;&lt;div&gt;http://localhost:8080/img/cat.png&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXwTvuHUW_IbJNzqyebAcKewhuPk0FmaqV3e9j7VIlJxOZGMKdJPT4JwsXe-Ov2JM7yk7Pzq39pBKn9qRHpO5uWGUV_7IRckJSaWSoRzKwhrEA-g9LzS23ZlXMdenDQoTiWK9HwbS-t7jP3tZ6S2H6z4ZF-VniWvW1KD7lPQIPMYlIO19zHvUuEdMbdA/s1767/9.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1013&quot; data-original-width=&quot;1767&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiXwTvuHUW_IbJNzqyebAcKewhuPk0FmaqV3e9j7VIlJxOZGMKdJPT4JwsXe-Ov2JM7yk7Pzq39pBKn9qRHpO5uWGUV_7IRckJSaWSoRzKwhrEA-g9LzS23ZlXMdenDQoTiWK9HwbS-t7jP3tZ6S2H6z4ZF-VniWvW1KD7lPQIPMYlIO19zHvUuEdMbdA/w640-h366/9.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖10&lt;/div&gt;&lt;div&gt;http://localhost:8080/js/catjs.js&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtPe0fyERVt41bRc3LESIc8NF273sOvN1vXs0-LZnOae9JnsOfFEOY3mqRV213K-CKZJkcnKsHZ2tWTSKn4kYNYS70L25PMXtZx1O7jYrTqd_97t8fo8hcLFqWN_z7RP6DPbxPtXYcgEkZVPNnDzwKXd3wjGtSh170jbVuisrCrCnzBFKzbrwGKBIfWA/s584/10.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;314&quot; data-original-width=&quot;584&quot; height=&quot;344&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgtPe0fyERVt41bRc3LESIc8NF273sOvN1vXs0-LZnOae9JnsOfFEOY3mqRV213K-CKZJkcnKsHZ2tWTSKn4kYNYS70L25PMXtZx1O7jYrTqd_97t8fo8hcLFqWN_z7RP6DPbxPtXYcgEkZVPNnDzwKXd3wjGtSh170jbVuisrCrCnzBFKzbrwGKBIfWA/w640-h344/10.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/789f0e9e3fba343dee638f17bf5ff3fe34360a52/springboot-static-resources-demo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/3850771478287889802/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web_8.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3850771478287889802'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/3850771478287889802'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web_8.html' title='Spring Boot web 專案 靜態資源 簡介'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOTUJHd2WZBdx5jw1hsFdgE7XBNZDE33fPuaQ7XZM6P_WhBv5dXZeuUEZDCah90QbYIyPiTfa_z68kn2ni2kx4jViYeebtYcgD48IDkGPrCaT7zkPIREWKIewwwIDjDPJ51HDV06BrYqgq3Mq8eePh_peyfokFeupcdHlXpJV9yKbbU60qU5UZhNd_CA/s72-w640-h336-c/1.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-7366708567710896194</id><published>2022-02-07T15:09:00.002+08:00</published><updated>2022-02-07T15:09:15.083+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="IntelliJ IDEA"/><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot IDEA 工具 Create Resource Bundle 功能 i18n檔案工具</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文說明一個 IDEA 工具，&lt;/div&gt;&lt;div&gt;用於&lt;/div&gt;&lt;div&gt;資源包是一組具有相同基本名稱和不同語言特定後綴的屬性文件。&lt;/div&gt;&lt;div&gt;一個資源包至少包含兩個具有相似基本名稱的屬性文件。&lt;/div&gt;&lt;div&gt;如i18n國際化文件&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在Intellij IDEA 開發工具，整合需多便利開發的工具。&lt;/div&gt;&lt;div&gt;在創建 i18n 檔可以有效率的創建及調整。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在資料夾點右鍵-&amp;gt;New -&amp;gt; Resource Bundle&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEii0td98fSls_pMvpyV70Rzjn-as6zWOLLpUyRNTH-xRoPTBjS5IbhF71he1iSeJbYfFeL3yA6QwU9Iw4gqsBkJc1t0Zc_JqOdkXTgko65h5yet4MUfE5CEuYmbbPL21px1CUNZuoiZO3E6kXmTPJm-5Jk_UBXpoQUMiTaO54aLXqH-rvldC175uKJwLA=s830&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;744&quot; data-original-width=&quot;830&quot; height=&quot;574&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEii0td98fSls_pMvpyV70Rzjn-as6zWOLLpUyRNTH-xRoPTBjS5IbhF71he1iSeJbYfFeL3yA6QwU9Iw4gqsBkJc1t0Zc_JqOdkXTgko65h5yet4MUfE5CEuYmbbPL21px1CUNZuoiZO3E6kXmTPJm-5Jk_UBXpoQUMiTaO54aLXqH-rvldC175uKJwLA=w640-h574&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖2 進入Create Resource Bundle&amp;nbsp;&lt;/div&gt;&lt;div&gt;在 Resource bundle base name 輸入主檔名&lt;/div&gt;&lt;div&gt;本文打入 message , 後按下+&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgsnQ2bwOpLtp-G7uny2-HJC4T5UASq_MaM-erFtZ4sZwK-wNAlyu7y0Ft48D3EaKwhuTeFZ_2Mmw1Nw6sFuwrZxCAooN-JNRFv0EV_uwD65HFBOg5-6l1cgesCEk-_fEeuGleXb3IVhe1DvmXdXvsbUHaxC3rG210csywv1h2CMn0rBfp4sXQ941AYKg=s813&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;710&quot; data-original-width=&quot;813&quot; height=&quot;558&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgsnQ2bwOpLtp-G7uny2-HJC4T5UASq_MaM-erFtZ4sZwK-wNAlyu7y0Ft48D3EaKwhuTeFZ_2Mmw1Nw6sFuwrZxCAooN-JNRFv0EV_uwD65HFBOg5-6l1cgesCEk-_fEeuGleXb3IVhe1DvmXdXvsbUHaxC3rG210csywv1h2CMn0rBfp4sXQ941AYKg=w640-h558&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖3 Add Locals , 加入 en_US&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEigQbNNOBhh6MsGPUhmYpBErbQRNfChN0FHVe6P9rY3zlwAE96iGAyAHM5uReYGbcUN5Od1vnSSFtZCcO_IgLp9h5YVgd0PGvndHW6JcQr0MXNZZY1Nj14nvA2e85iUqf4EfjMkV8VN0sJNC6gMPUoYmmTIBc_r41msWdIQxvU2nVn3nF3GLFx73-jQbg=s881&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;677&quot; data-original-width=&quot;881&quot; height=&quot;492&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEigQbNNOBhh6MsGPUhmYpBErbQRNfChN0FHVe6P9rY3zlwAE96iGAyAHM5uReYGbcUN5Od1vnSSFtZCcO_IgLp9h5YVgd0PGvndHW6JcQr0MXNZZY1Nj14nvA2e85iUqf4EfjMkV8VN0sJNC6gMPUoYmmTIBc_r41msWdIQxvU2nVn3nF3GLFx73-jQbg=w640-h492&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 加入後結果&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYYPg84BBWyFONpk8tLVIyLX4PiONPjfVj5aS2xqK10OxLOqcf8tCAbwRUrhJ9Pa1YFjGPNAbCZmuZLhScGARqS6Wn9pyFMWIQybPNWiW9XSUSMSreYj5XVcUcOZpnQu20gBbIn1TAiI-3NUjnP46RD5E0tCFHXdz-XSvwPhvDaKStzj41ZsHf2M0Xuw=s717&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;549&quot; data-original-width=&quot;717&quot; height=&quot;490&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhYYPg84BBWyFONpk8tLVIyLX4PiONPjfVj5aS2xqK10OxLOqcf8tCAbwRUrhJ9Pa1YFjGPNAbCZmuZLhScGARqS6Wn9pyFMWIQybPNWiW9XSUSMSreYj5XVcUcOZpnQu20gBbIn1TAiI-3NUjnP46RD5E0tCFHXdz-XSvwPhvDaKStzj41ZsHf2M0Xuw=w640-h490&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 Add Locals , 加入 zh_TW&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjy6AKtTbgc4frZWThhJuJ8sGy_BoCZS-Luq3-DrWemVBOY2Q-q0EeIKiGa39bFT_LykxEauCMrRvMfuzkBpMIcGJGmOjkaVjkY54HdDYwfxYEKN9nHSBAfi7d_JN5RrNlTBN8lF3e9UDI01r4nOjIZGtIHBGMuzefQ-2t0YqzbLvBN0SSY5dqR9AoDjA=s671&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;559&quot; data-original-width=&quot;671&quot; height=&quot;534&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjy6AKtTbgc4frZWThhJuJ8sGy_BoCZS-Luq3-DrWemVBOY2Q-q0EeIKiGa39bFT_LykxEauCMrRvMfuzkBpMIcGJGmOjkaVjkY54HdDYwfxYEKN9nHSBAfi7d_JN5RrNlTBN8lF3e9UDI01r4nOjIZGtIHBGMuzefQ-2t0YqzbLvBN0SSY5dqR9AoDjA=w640-h534&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 加入後結果&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhpN-e6ALd79LSEd38qVRBiaaForLUUHMQRzV_bqiF93bfXAK8tBgHl8JNgA2razPjDfxPN393fbSRFmtE-_oiodi0pdyPcXmEr07eva9NHhJ4C3o_STYIF83_iIKRu9p8U6s5EfDQJyxioYddZ3B8KR8qmUWm8LoGvvYmJGOn0AqaRzCEU0e56z_M40A=s604&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;510&quot; data-original-width=&quot;604&quot; height=&quot;540&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhpN-e6ALd79LSEd38qVRBiaaForLUUHMQRzV_bqiF93bfXAK8tBgHl8JNgA2razPjDfxPN393fbSRFmtE-_oiodi0pdyPcXmEr07eva9NHhJ4C3o_STYIF83_iIKRu9p8U6s5EfDQJyxioYddZ3B8KR8qmUWm8LoGvvYmJGOn0AqaRzCEU0e56z_M40A=w640-h540&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖7 如果要多檔也可以用, 逗號分開&lt;/div&gt;&lt;div&gt;如：en_US,zh_TW&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZp1dIQMhCxT4-MaHpz4P0LBqeGTnZfuXmSiYkKQHS3Ie0hVKYRDVWoTIwTcgTQHShslb0Vw7uCAhZdABgXRTA5Z1xgwM-DyxuCJlepdyKobUCmBlA7ejARWdxiWM4bm8L0rnGxKNASruvOLASAKZ2DFHk3Kxsk8gGYcbEFMAlXv-ahatHjTpcHQjTxg=s504&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;418&quot; data-original-width=&quot;504&quot; height=&quot;530&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiZp1dIQMhCxT4-MaHpz4P0LBqeGTnZfuXmSiYkKQHS3Ie0hVKYRDVWoTIwTcgTQHShslb0Vw7uCAhZdABgXRTA5Z1xgwM-DyxuCJlepdyKobUCmBlA7ejARWdxiWM4bm8L0rnGxKNASruvOLASAKZ2DFHk3Kxsk8gGYcbEFMAlXv-ahatHjTpcHQjTxg=w640-h530&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖8 最後產生的檔案結果&lt;/div&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgoB82xJrj6UBAY7GX7dUHPmODgoGPZB3nvgQMq6VVfyxbgQWFPzXQZBi7Eieu8wkzyaOs1s7eYdTDsA3e_p1D0RYGjt-kVy59mxIlWOfRVpco6Exk-6JV6bqEPF2fKwLSCN-pLmjUuVD1sqgVvL9EX2HUjl_-ZL8wPutlpcOdhtl9mQYpWGPwJ60-I_w=s668&quot; imageanchor=&quot;1&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;502&quot; data-original-width=&quot;668&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgoB82xJrj6UBAY7GX7dUHPmODgoGPZB3nvgQMq6VVfyxbgQWFPzXQZBi7Eieu8wkzyaOs1s7eYdTDsA3e_p1D0RYGjt-kVy59mxIlWOfRVpco6Exk-6JV6bqEPF2fKwLSCN-pLmjUuVD1sqgVvL9EX2HUjl_-ZL8wPutlpcOdhtl9mQYpWGPwJ60-I_w=w640-h480&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖9 點入檔案中左下有Resource Bundle&amp;nbsp; 介面&lt;/div&gt;&lt;div&gt;可以快速的查看 code 的對應。&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh3Ubu30zooVxpRdmQ4jhlBCMQLlwiWNmhlsMV5J4o0efh-O3NWUM8Zs3qkuTORy61FxyXOKyZ0A-0-y3_8Geyiba4pQzxCOTUy3Ll7dUMlIFfY-YyOn8WmohJpGQoRlg6AdPZyTjHclaydJ_jMOwwsYzjLhxF_GMICauLeApT0XTCdBzLYNNopa6f7GQ=s1431&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1026&quot; data-original-width=&quot;1431&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh3Ubu30zooVxpRdmQ4jhlBCMQLlwiWNmhlsMV5J4o0efh-O3NWUM8Zs3qkuTORy61FxyXOKyZ0A-0-y3_8Geyiba4pQzxCOTUy3Ll7dUMlIFfY-YyOn8WmohJpGQoRlg6AdPZyTjHclaydJ_jMOwwsYzjLhxF_GMICauLeApT0XTCdBzLYNNopa6f7GQ=w640-h458&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖10&lt;/div&gt;&lt;div&gt;在Resource Bundle &#39;message&#39; 點右鍵後，可以看到多二個功能&lt;/div&gt;&lt;div&gt;Dissociate Resource Bundle &#39;message&#39;&lt;/div&gt;&lt;div&gt;Combine to Resource Bundle&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;如果不想使用Resource Bundle管理文件，可以點 Dissociate Resource Bundle &#39;message&#39;&lt;/div&gt;&lt;div&gt;Combine to Resource Bundle 合併管理文件，可以把沒有Resource Bundle管理的文件加入進來管理&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgbNf2MvELyQTttwQj_Qs-ceSzh1_UxsviFcjszxEUsEg1sUul3LKS20uWqbggRd_ZOJ1zB-AKEcni5lmr3Avj80HWBmFnc4VwthMKnW8prZafKALsTfYRvd9T056gpcKWjsuUmsmQ4d8EwzW8jIIgLIQxDTetuNZnL9Ue4CeuxdgzOfhDEJ5BpbZ-5HQ=s767&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;767&quot; data-original-width=&quot;586&quot; height=&quot;640&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgbNf2MvELyQTttwQj_Qs-ceSzh1_UxsviFcjszxEUsEg1sUul3LKS20uWqbggRd_ZOJ1zB-AKEcni5lmr3Avj80HWBmFnc4VwthMKnW8prZafKALsTfYRvd9T056gpcKWjsuUmsmQ4d8EwzW8jIIgLIQxDTetuNZnL9Ue4CeuxdgzOfhDEJ5BpbZ-5HQ=w488-h640&quot; width=&quot;488&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/7366708567710896194/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-idea-create-resource-bundle.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7366708567710896194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7366708567710896194'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-idea-create-resource-bundle.html' title='Spring Boot IDEA 工具 Create Resource Bundle 功能 i18n檔案工具'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEii0td98fSls_pMvpyV70Rzjn-as6zWOLLpUyRNTH-xRoPTBjS5IbhF71he1iSeJbYfFeL3yA6QwU9Iw4gqsBkJc1t0Zc_JqOdkXTgko65h5yet4MUfE5CEuYmbbPL21px1CUNZuoiZO3E6kXmTPJm-5Jk_UBXpoQUMiTaO54aLXqH-rvldC175uKJwLA=s72-w640-h574-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-5108336283940055304</id><published>2022-02-07T15:03:00.003+08:00</published><updated>2022-02-07T15:11:31.103+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案 i18n 設定</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Spring Boot 會自動配置 MessageSource 的bean 做i18n多國語言訊息，&lt;/div&gt;&lt;div&gt;預設會尋找classpath根目錄下名稱為messages的properties。&lt;/div&gt;&lt;div&gt;也可在Spring Boot配置檔application.properties設定其他名稱或路徑。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&amp;nbsp;&lt;/div&gt;&lt;div&gt;本文範例環境：&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;Java 11&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;Spring Boot 2.6.3.RELEASE&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;Maven&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;IntelliJ IDEA 2020.3 x64&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;&lt;/div&gt;&lt;div&gt;專案名稱：springbooti18ntestdemo&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;pom.xml dependencies&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖1 本文使用spring-boot-starter-web&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiFx0scll1wIiU74NXyVzy3AUAz1foBf4FbUyTpvR6pex8-rmOSKW8rOdRI_6cbEGOtfER8CiX8-g7oD4Ihwqo5t8y_JgQUvQIk4g-ronkHATguXnWWwsvcNyeI6rbqyuEv4UXgyqqqVKdGn2_GE6KvSUywp2cN2MSW0uj049nx8fts73xOsclTL27sPA=s711&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;264&quot; data-original-width=&quot;711&quot; height=&quot;238&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiFx0scll1wIiU74NXyVzy3AUAz1foBf4FbUyTpvR6pex8-rmOSKW8rOdRI_6cbEGOtfER8CiX8-g7oD4Ihwqo5t8y_JgQUvQIk4g-ronkHATguXnWWwsvcNyeI6rbqyuEv4UXgyqqqVKdGn2_GE6KvSUywp2cN2MSW0uj049nx8fts73xOsclTL27sPA=w640-h238&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;在resources 資料夾下新增i18n資料夾後放messages的properties。&lt;/div&gt;&lt;div&gt;為什麼新增i18n資料夾，是因為好跟其它的設定檔分開。&lt;/div&gt;&lt;div&gt;創建.propertis語言包&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;message.properties&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;message_en_US.properties&lt;/div&gt;&lt;div&gt;&lt;span style=&quot;white-space: pre;&quot;&gt;	&lt;/span&gt;message_zh_TW.properties&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文使用IDEA 工具 Create Resource Bundle 功能&lt;/div&gt;&lt;div&gt;如果你沒用過可以參考以下文章&lt;/div&gt;&lt;div&gt;&lt;a href=&quot;https://pclevin.blogspot.com/2022/02/spring-boot-idea-create-resource-bundle.html&quot; target=&quot;_blank&quot;&gt;Spring Boot IDEA 工具 Create Resource Bundle 功能 i18n檔案工具&lt;/a&gt;&lt;/div&gt;&lt;div&gt;圖2&amp;nbsp;&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh1lNbj9ozVwvvDklgltdbDlYk3iHgCC8YCc96BUjFwEEVwUySu9jrE7W4N2XzQg8HXX1jdjZoq1eDZh9kGdKgQ6xHUo6pqKHCFRc2JwQLc48RwiFk7JRNcfHIh6AwcqO5q8ECTOj6ZNQEZ2_OhhQV65D6lLjSSDkXVa-OsKjVlWYkq-peDAedXLeSmZg=s668&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;502&quot; data-original-width=&quot;668&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh1lNbj9ozVwvvDklgltdbDlYk3iHgCC8YCc96BUjFwEEVwUySu9jrE7W4N2XzQg8HXX1jdjZoq1eDZh9kGdKgQ6xHUo6pqKHCFRc2JwQLc48RwiFk7JRNcfHIh6AwcqO5q8ECTOj6ZNQEZ2_OhhQV65D6lLjSSDkXVa-OsKjVlWYkq-peDAedXLeSmZg=w640-h480&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;配置application.properties&lt;/div&gt;&lt;div&gt;spring.messages.basename=i18n/message&lt;/div&gt;&lt;div&gt;spring.messages.encoding=UTF-8&lt;/div&gt;&lt;div&gt;spring.messages.cache-duration=3600&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;spring.messages.basename 是設定message.properties 主檔案的位置&lt;/div&gt;&lt;div&gt;預設位置classpath下。&lt;/div&gt;&lt;div&gt;spring boot 預設位置classpath，有resources資料夾&lt;/div&gt;&lt;div&gt;所以在spring.messages.basename=i18n/message設定 i18n 下的message&lt;/div&gt;&lt;div&gt;而message，就是message.properties 的檔名，如果你不是用這個名稱記得也要改這設定&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjBeTe4q4sfKxjC4nZqwoGRE-JeDX0pqzt4F9UbN_49LkY1BNG0S3GjScXrrsWb1xP5mCckbgqMAUoAXSjDVCW88RzQb87njBULRspdqUCxQrBsFXpWVrIYabHOURt941Ey0Klnx3HhBzO7kN7m19cGZhFtiEVHSllYU5elUqiikz_3MED9eQUtAfoM2w=s1184&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;1184&quot; height=&quot;294&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjBeTe4q4sfKxjC4nZqwoGRE-JeDX0pqzt4F9UbN_49LkY1BNG0S3GjScXrrsWb1xP5mCckbgqMAUoAXSjDVCW88RzQb87njBULRspdqUCxQrBsFXpWVrIYabHOURt941Ey0Klnx3HhBzO7kN7m19cGZhFtiEVHSllYU5elUqiikz_3MED9eQUtAfoM2w=w640-h294&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;你使用IDEA 產生的檔會使用預設編碼&lt;/div&gt;&lt;div&gt;記得也要改。&lt;/div&gt;&lt;div&gt;本文使用 UTF-8&lt;/div&gt;&lt;div&gt;選單-&amp;gt; Settings -&amp;gt; File Encodings&lt;/div&gt;&lt;div&gt;把相關的都設定為你要用的編碼&lt;/div&gt;&lt;div&gt;圖4&amp;nbsp;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh4X3AD9tfpTofOg8z77xQsXqsh1kMnXTIMYcxbU4H2w3tnIXKXB0Ttdk3dKI9IFJxpvELZp0vaFoVADlWkpEgBY-ii_WPunwQAsQCx2bMtLodz4n5UcYUu6lJtTIeNvXIMWxglNSJngib6Rkkwkzuc4NUpSAljCxQGeB_3-aSSkyFIpQu7ohst8XRY7w=s997&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;712&quot; data-original-width=&quot;997&quot; height=&quot;458&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh4X3AD9tfpTofOg8z77xQsXqsh1kMnXTIMYcxbU4H2w3tnIXKXB0Ttdk3dKI9IFJxpvELZp0vaFoVADlWkpEgBY-ii_WPunwQAsQCx2bMtLodz4n5UcYUu6lJtTIeNvXIMWxglNSJngib6Rkkwkzuc4NUpSAljCxQGeB_3-aSSkyFIpQu7ohst8XRY7w=w640-h458&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖5 點選 message.properties&amp;nbsp; -&amp;gt; 進入介面 左下有 Resource Bundle -&amp;gt;上面有個+ 可以新增code&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjTjYB5DzIMl0hgfUpn0b0L_BEkk0guX4fIdjO5RzdUcLi00VbStEJGnm1OE_j_v6nDFbwhRhesMlRZhsBq5hiYnHyxY2G1dMVObaNon8uVDo51tf72ECw8l7JHTlvToPQ_EEiLIwkTlepF0cxakfsuXHEb8SZxV2e8NFvPS_HNq5bMTEygxu8-BCpfjw=s933&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;554&quot; data-original-width=&quot;933&quot; height=&quot;380&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjTjYB5DzIMl0hgfUpn0b0L_BEkk0guX4fIdjO5RzdUcLi00VbStEJGnm1OE_j_v6nDFbwhRhesMlRZhsBq5hiYnHyxY2G1dMVObaNon8uVDo51tf72ECw8l7JHTlvToPQ_EEiLIwkTlepF0cxakfsuXHEb8SZxV2e8NFvPS_HNq5bMTEygxu8-BCpfjw=w640-h380&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖6 設定 code ，&lt;/div&gt;&lt;div&gt;本文加入 spring.boot.hello.world&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhxxJ9zEhvVfFoZE6WRco4JJbmg5hFJgwVmM1SQ-FQ1HR6pZ_1EEuuHeD2lGsvuT-I0mUnYg_Uh0X2ho9NVO-2_n967nb14tVZG36KuyZL1CPPNDXk35ANCLp4ICRCDgnHrmZGnYva4prR7MlYmkpkvQPXkVlPdLe9Y4qK5ncy_hnBmrbCAd5DAfSWIhQ=s431&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;212&quot; data-original-width=&quot;431&quot; height=&quot;314&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhxxJ9zEhvVfFoZE6WRco4JJbmg5hFJgwVmM1SQ-FQ1HR6pZ_1EEuuHeD2lGsvuT-I0mUnYg_Uh0X2ho9NVO-2_n967nb14tVZG36KuyZL1CPPNDXk35ANCLp4ICRCDgnHrmZGnYva4prR7MlYmkpkvQPXkVlPdLe9Y4qK5ncy_hnBmrbCAd5DAfSWIhQ=w640-h314&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖7 code 新增後，加入值，如圖&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg8M0JpHNaO5CbHxrjxoWy6bnfOgMknLjNrouZUz4vpRrg2Kpzi7cZUgcD-YU2v4K0jUe7fdzPrVeCJWkSBTw2TOYlbSEcmo-Q29XJ8obi4UNuSSVOKr4eOLzO8lCHd6M1glpalINJA-jPw420YrNOMhqEIPQre7x7wELHOCrT1ehQ8X7wMcBPWUHrpQQ=s1522&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;833&quot; data-original-width=&quot;1522&quot; height=&quot;350&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg8M0JpHNaO5CbHxrjxoWy6bnfOgMknLjNrouZUz4vpRrg2Kpzi7cZUgcD-YU2v4K0jUe7fdzPrVeCJWkSBTw2TOYlbSEcmo-Q29XJ8obi4UNuSSVOKr4eOLzO8lCHd6M1glpalINJA-jPw420YrNOMhqEIPQre7x7wELHOCrT1ehQ8X7wMcBPWUHrpQQ=w640-h350&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;加入 測試用的controller&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;需要MessageSource的getMessage方法來讀檔，主要依Locale 來判斷要使用那個檔&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;getMessage(&quot;code key&quot;,參數,Locale 語言)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;程式如下：

&lt;pre class=&quot;codeblock&quot;&gt;@RestController
public class SampleController {
    @Autowired
    private MessageSource messageSource;

    @RequestMapping(&quot;/index&quot;)
    public String index(@RequestParam(&quot;lang&quot;) String langStr){
        Locale locale = Locale.ROOT;//預設使用，測試用的會使用message.properties
        if(&quot;zh&quot;.equals(langStr)){
            locale = Locale.TAIWAN;//設定會使用message_zh_TW.properties
        } else if(&quot;en&quot;.equals(langStr)){
            locale = Locale.US;//設定會使用message_en_US.properties
        }
        String str =  messageSource.getMessage(&quot;spring.boot.hello.world&quot;, null, locale);
        System.out.println(str);
        return str;
    }
}
&lt;/pre&gt;

  

&lt;div&gt;圖8&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjs2vP1TUr-02ETuN6P_NfLxnT8Qhx_yXpqW-VeBJ9xqObB7361ep69wYXftAttDoMyd3jAtRP2XeR1jrUVW8ZhFS_rJ57B3bj3rC3kOLv0cSQ8O3iEsIfOgswjBfy1Rj7pIRtVKT-xk5mip6NmDpCve000BPOVBDGrhVOXYyIo7rNJoNIDVWUi9lCRzg=s1537&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;711&quot; data-original-width=&quot;1537&quot; height=&quot;296&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjs2vP1TUr-02ETuN6P_NfLxnT8Qhx_yXpqW-VeBJ9xqObB7361ep69wYXftAttDoMyd3jAtRP2XeR1jrUVW8ZhFS_rJ57B3bj3rC3kOLv0cSQ8O3iEsIfOgswjBfy1Rj7pIRtVKT-xk5mip6NmDpCve000BPOVBDGrhVOXYyIo7rNJoNIDVWUi9lCRzg=w640-h296&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖 9 測試 message_zh_TW.properties&lt;/div&gt;&lt;div&gt;http://localhost:8080/index?lang=zh&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgF9089wDXP7uqyRTLrDnSWZIh3XboXK_F9CdjNxpIkBFl1lG8apEerohJJ_qaZomOP-1meqXzAuUp5XaJnrdPYrzoQmO2L_YNfaLaQQnpl7dCxHbe3sZ8Jg4h0zA5v5u6Yy_WA9I10BmhTyqpK92dAt8_uaeX0IdbZf1frCmnWGqmSVnBO1aQepKWeSw=s495&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;162&quot; data-original-width=&quot;495&quot; height=&quot;131&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgF9089wDXP7uqyRTLrDnSWZIh3XboXK_F9CdjNxpIkBFl1lG8apEerohJJ_qaZomOP-1meqXzAuUp5XaJnrdPYrzoQmO2L_YNfaLaQQnpl7dCxHbe3sZ8Jg4h0zA5v5u6Yy_WA9I10BmhTyqpK92dAt8_uaeX0IdbZf1frCmnWGqmSVnBO1aQepKWeSw=w400-h131&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖 10 測試 message_en_US.properties&lt;/div&gt;&lt;div&gt;http://localhost:8080/index?lang=en&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhgC4Oa3uZ13RjpY_pR5yQbWvfxT0DQ7HcRgiIgv07GM4xdwkL_eKbADC1bJEIEGs3zpTZikQF7xaNwJYq5AU456C4ktpuipREyvSzMmHE9J5b5X0W0_edlX1RahmsYAdVWkWTSeTdezsK5CsoT1GryW3RWn5QZJAl4eXpLpwyu7UMgD8a6llFEsFFN4A=s535&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;244&quot; data-original-width=&quot;535&quot; height=&quot;183&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhgC4Oa3uZ13RjpY_pR5yQbWvfxT0DQ7HcRgiIgv07GM4xdwkL_eKbADC1bJEIEGs3zpTZikQF7xaNwJYq5AU456C4ktpuipREyvSzMmHE9J5b5X0W0_edlX1RahmsYAdVWkWTSeTdezsK5CsoT1GryW3RWn5QZJAl4eXpLpwyu7UMgD8a6llFEsFFN4A=w400-h183&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖 11 測試 message.properties&lt;/div&gt;&lt;div&gt;http://localhost:8080/index?lang=jj&lt;/div&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEggzRw1O88vfa6Or3lGUk1GR5OMCU_vOF7XmTRVeoDecU2ZrrQ-JRUnG7I9UGt9aiOVq9gglrTw1NrakDX5vrOaQD1E5etd_QDx7w4NudK6flBeWSNwF40BDIpgg2SkwQjBxpCHq5E2nW7JsOjlKiQgkz5hR7Fsh3AOEIHNbe5Dsgzvn7_L9NHv4QgiXQ=s487&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;141&quot; data-original-width=&quot;487&quot; height=&quot;116&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEggzRw1O88vfa6Or3lGUk1GR5OMCU_vOF7XmTRVeoDecU2ZrrQ-JRUnG7I9UGt9aiOVq9gglrTw1NrakDX5vrOaQD1E5etd_QDx7w4NudK6flBeWSNwF40BDIpgg2SkwQjBxpCHq5E2nW7JsOjlKiQgkz5hR7Fsh3AOEIHNbe5Dsgzvn7_L9NHv4QgiXQ=w400-h116&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/877728487c71196c5070aa8a7ea0496d63dd83ea/springbooti18ntestdemo.zip&quot; target=&quot;_blank&quot;&gt;本文專案下載&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;&lt;div data-en-clipboard=&quot;true&quot; data-pm-slice=&quot;1 1 []&quot;&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;


















&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/5108336283940055304/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-i18n.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5108336283940055304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5108336283940055304'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-i18n.html' title='Spring Boot web 專案 i18n 設定'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiFx0scll1wIiU74NXyVzy3AUAz1foBf4FbUyTpvR6pex8-rmOSKW8rOdRI_6cbEGOtfER8CiX8-g7oD4Ihwqo5t8y_JgQUvQIk4g-ronkHATguXnWWwsvcNyeI6rbqyuEv4UXgyqqqVKdGn2_GE6KvSUywp2cN2MSW0uj049nx8fts73xOsclTL27sPA=s72-w640-h238-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-7444858437247483986</id><published>2022-02-06T23:17:00.001+08:00</published><updated>2022-02-06T23:22:22.438+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot web 專案 tomcat log 設定</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文簡單說明設定tomcat log&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;啟用tomcat log 需要如下啟用的設定&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.enabled=true&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgr1v2SbLkaGMdJSZ9-WP9oKtRRbmpDXmUo9A9ofgPs9ZQaUdSgLGhipNXMTv5hfHwzb-sjllNLZjU9P3cNFpcqqocKOZDNzoSE76DozP9Tre2dL1uAcPUT76RnRFX7dlEA91GlKv9atUJvunw2DSUMUE1maBzk0V0XynXFh4o8NTBgCQeGEte8vNqhMA=s1864&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;950&quot; data-original-width=&quot;1864&quot; height=&quot;326&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgr1v2SbLkaGMdJSZ9-WP9oKtRRbmpDXmUo9A9ofgPs9ZQaUdSgLGhipNXMTv5hfHwzb-sjllNLZjU9P3cNFpcqqocKOZDNzoSE76DozP9Tre2dL1uAcPUT76RnRFX7dlEA91GlKv9atUJvunw2DSUMUE1maBzk0V0XynXFh4o8NTBgCQeGEte8vNqhMA=w640-h326&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;本文就以下常用介紹&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;server.tomcat.basedir=tomcat/logs&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.enabled=true&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.directory=accessLogs&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.file-date-format=yyyy-MM-dd&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.prefix=access_log&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.suffix=.log&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;設定tomcat 基本目錄&lt;/div&gt;&lt;div&gt;server.tomcat.basedir=tomcat/logs&lt;/div&gt;&lt;div&gt;圖2&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7D9IFuLn-vrQOhPFewodgcgeSERZ4yI8Yf9vd1hYloQBPH73deoXR_20TYi_eVAUEeQDDOL52GyQ4FAQMx2J3sFv8iZQuMula9TocjkyncEvz665dewwoRnuQ9c8ttm0b3OPAmMV5nE_yT_hnG8qfHRZWNRPX7l14xteS_Hq9FEKt2FTtlXN5cEM5jw=s1841&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;919&quot; data-original-width=&quot;1841&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEj7D9IFuLn-vrQOhPFewodgcgeSERZ4yI8Yf9vd1hYloQBPH73deoXR_20TYi_eVAUEeQDDOL52GyQ4FAQMx2J3sFv8iZQuMula9TocjkyncEvz665dewwoRnuQ9c8ttm0b3OPAmMV5nE_yT_hnG8qfHRZWNRPX7l14xteS_Hq9FEKt2FTtlXN5cEM5jw=w640-h320&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;設定tomcat log目錄&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.directory=accessLogs&lt;/div&gt;&lt;div&gt;設定tomcat log 檔名格式&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.file-date-format=yyyy-MM-dd&lt;/div&gt;&lt;div&gt;設定tomcat log 檔名前綴&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.prefix=access_log&lt;/div&gt;&lt;div&gt;設定tomcat log 檔名後綴&lt;/div&gt;&lt;div&gt;server.tomcat.accesslog.suffix=.log&lt;/div&gt;&lt;div&gt;圖3&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiWyyPki1H2XCEGpewaof60OC7KXGqOZDXxG0feV9QaYzBsZ2b_KDFgFiGvKHNib0S1mIXINdMgshZ3WBQfQWPVRI1u0DX_CVR5_rdbn9yyoyF1qWflbMopoNMJ_iZNgs9w9VR22twaPVBmiNEZGNz_5JZsjx0oVESQ2upFkrReOYIiwzNwpL9KuPuWmA=s1293&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;647&quot; data-original-width=&quot;1293&quot; height=&quot;320&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiWyyPki1H2XCEGpewaof60OC7KXGqOZDXxG0feV9QaYzBsZ2b_KDFgFiGvKHNib0S1mIXINdMgshZ3WBQfQWPVRI1u0DX_CVR5_rdbn9yyoyF1qWflbMopoNMJ_iZNgs9w9VR22twaPVBmiNEZGNz_5JZsjx0oVESQ2upFkrReOYIiwzNwpL9KuPuWmA=w640-h320&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;div data-en-clipboard=&quot;true&quot; data-pm-slice=&quot;1 1 []&quot;&gt;&lt;a href=&quot;https://github.com/pclevinblog/SpringBoot/blob/952baefe75c4cef8dce359615075efc1af70376d/springboottomcatlogdemo.zip&quot; target=&quot;_blank&quot;&gt;下載專案&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/7444858437247483986/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-tomcat-log.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7444858437247483986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/7444858437247483986'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-web-tomcat-log.html' title='Spring Boot web 專案 tomcat log 設定'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgr1v2SbLkaGMdJSZ9-WP9oKtRRbmpDXmUo9A9ofgPs9ZQaUdSgLGhipNXMTv5hfHwzb-sjllNLZjU9P3cNFpcqqocKOZDNzoSE76DozP9Tre2dL1uAcPUT76RnRFX7dlEA91GlKv9atUJvunw2DSUMUE1maBzk0V0XynXFh4o8NTBgCQeGEte8vNqhMA=s72-w640-h326-c" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4363922986149351174.post-5496076713790936176</id><published>2022-02-06T20:34:00.006+08:00</published><updated>2022-02-06T20:34:52.770+08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="Spring Boot"/><title type='text'>Spring Boot IDEA 專案 啟動時發生錯誤 javax.management.InstanceNotFoundException</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;使用 IDEA 開發工具，有時後會發生以下的錯誤&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;javax.management.InstanceNotFoundException: org.springframework.boot:type=Admin,name=SpringApplication&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖1&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjxOnx_TbAe9OoJ6f4Flhh0rRhK3zRkck-jpXzkgUmE5S4m2bTkK9eOlvJnPGmHtJ1lRIIZHUp_zmKjQCajdwS4jRy-xUbBDxU7w1hgFYIIBxWlEJWHPwkwDNGo0fQ6jZleIhQ1CCVMXhGB4mZNos1tCeZeNrDtJlw5zIPjApqLyiotY6Uj4jSjQA3jtw=s1895&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;545&quot; data-original-width=&quot;1895&quot; height=&quot;184&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjxOnx_TbAe9OoJ6f4Flhh0rRhK3zRkck-jpXzkgUmE5S4m2bTkK9eOlvJnPGmHtJ1lRIIZHUp_zmKjQCajdwS4jRy-xUbBDxU7w1hgFYIIBxWlEJWHPwkwDNGo0fQ6jZleIhQ1CCVMXhGB4mZNos1tCeZeNrDtJlw5zIPjApqLyiotY6Uj4jSjQA3jtw=w640-h184&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;修改&amp;nbsp; Run Configuration&lt;/div&gt;&lt;div&gt;圖2 在左下Run介面有 板手的圖&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhU3shhzTpn6io4vUmupOvj8j-3hPYubnIURBLK4fuYokDsgalYBgVRXQS0572ThjXipOq6romSP9dSEUN0icnki06mxtIP-XsTWkXrGHKkpMbMigAT648tlWykSUoBk05FzNz9S3ktXHliVOSAO-ziX4bZ0W4W6xxxKePqAOM9PkhYvWbywfG1hmuoPQ=s613&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;351&quot; data-original-width=&quot;613&quot; height=&quot;366&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEhU3shhzTpn6io4vUmupOvj8j-3hPYubnIURBLK4fuYokDsgalYBgVRXQS0572ThjXipOq6romSP9dSEUN0icnki06mxtIP-XsTWkXrGHKkpMbMigAT648tlWykSUoBk05FzNz9S3ktXHliVOSAO-ziX4bZ0W4W6xxxKePqAOM9PkhYvWbywfG1hmuoPQ=w640-h366&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖3 看到 Enable launch optimization&lt;/div&gt;&lt;div&gt;Enable JMX agent 是打勾的&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg6oHasbNlMoOEtB-wZJV8a5Pa2gefB8To_SFfaYnVVBqmC3VwLCYWCBmYdISyNZhROtn3_ooB8TX1zJXSLRqHLkjLNYOcx3LK41QsL4K8gJUD3u7UwiPWZavOww6KAGBTK3G_MJZGrTkI0qrkNNHHbFrfpBGfMHAeP3zQDYMAP_4jCmGc6xlwbyUQS-A=s1163&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1034&quot; data-original-width=&quot;1163&quot; height=&quot;570&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEg6oHasbNlMoOEtB-wZJV8a5Pa2gefB8To_SFfaYnVVBqmC3VwLCYWCBmYdISyNZhROtn3_ooB8TX1zJXSLRqHLkjLNYOcx3LK41QsL4K8gJUD3u7UwiPWZavOww6KAGBTK3G_MJZGrTkI0qrkNNHHbFrfpBGfMHAeP3zQDYMAP_4jCmGc6xlwbyUQS-A=w640-h570&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;圖4 取消打勾&lt;/div&gt;&lt;div&gt;Enable launch optimization&lt;/div&gt;&lt;div&gt;Enable JMX agent&lt;/div&gt;&lt;div&gt;後ok&lt;/div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgdtmOc4_iW3Qk-5_-Ar4y1XN554KcPdzlFslxcmR6Eij3KR_WyrT18cv9bBQM1mPvFWaiteQQOQ3nwLfLsnEF3_lDYQ4D5iYwVKuvyfjG4LkRF34D-aFaVj-OZM1NmSyNC_VJ5l1x5Yn6La1KNpS5YNXtn8QD35K9U8tmpSDxOT5cvZNgr5qc64lgENg=s1132&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; data-original-height=&quot;1057&quot; data-original-width=&quot;1132&quot; height=&quot;598&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgdtmOc4_iW3Qk-5_-Ar4y1XN554KcPdzlFslxcmR6Eij3KR_WyrT18cv9bBQM1mPvFWaiteQQOQ3nwLfLsnEF3_lDYQ4D5iYwVKuvyfjG4LkRF34D-aFaVj-OZM1NmSyNC_VJ5l1x5Yn6La1KNpS5YNXtn8QD35K9U8tmpSDxOT5cvZNgr5qc64lgENg=w640-h598&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;用LINE傳送分享&lt;/span&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div class=&quot;line-it-button&quot; data-lang=&quot;zh_Hant&quot; data-type=&quot;share-d&quot; data-url=&quot;https://pclevin.blogspot.tw&quot; style=&quot;display: none;&quot;&gt;&lt;/div&gt;
 &lt;script async=&quot;async&quot; defer=&quot;defer&quot; src=&quot;https://d.line-scdn.net/r/web/social-plugin/js/thirdparty/loader.min.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;LineIt.loadButton();&lt;/script&gt;
&lt;span style=&quot;text-align: center;&quot;&gt;&lt;br /&gt;&lt;/span&gt;

&lt;span style=&quot;text-align: center;&quot;&gt;
&lt;script src=&quot;//media.line.me/js/line-button.js?v=20140411&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
new media_line_me.LineButton({&quot;pc&quot;:true,&quot;lang&quot;:&quot;zh-hant&quot;,&quot;type&quot;:&quot;e&quot;,&quot;text&quot;:&#39;Java程式教學甘仔店 &#39;,&quot;withUrl&quot;:true});
&lt;/script&gt;
&lt;/span&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;其它文章
&lt;a name=&#39;more&#39;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/&quot;&gt;首頁&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java_28.html&quot; target=&quot;_blank&quot;&gt;JAVA教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/java-web.html&quot; target=&quot;_blank&quot;&gt;JSP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/apache.html&quot; target=&quot;_blank&quot;&gt;Apache教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/google-app-engine.html&quot; target=&quot;_blank&quot;&gt;Google App Engine教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page.html&quot; target=&quot;_blank&quot;&gt;JBoss教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/android.html&quot; target=&quot;_blank&quot;&gt;Android教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/grails.html&quot; target=&quot;_blank&quot;&gt;Grails教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/spring.html&quot; target=&quot;_blank&quot;&gt;SSH教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_22.html&quot; target=&quot;_blank&quot;&gt;Window教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/linux.html&quot; target=&quot;_blank&quot;&gt;Linux教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/php.html&quot; target=&quot;_blank&quot;&gt;PHP教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/c.html&quot; target=&quot;_blank&quot;&gt;C教學/C++教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery.html&quot; target=&quot;_blank&quot;&gt;jQuery教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/html5.html&quot; target=&quot;_blank&quot;&gt;HTML5教學/CSS3教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/javascript.html&quot; target=&quot;_blank&quot;&gt;JavaScript教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/mysql_28.html&quot; target=&quot;_blank&quot;&gt;MySQL教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/oracle.html&quot; target=&quot;_blank&quot;&gt;Oracle教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_30.html&quot; target=&quot;_blank&quot;&gt;SQL Server教學/PostgreSQL教學/其它資料庫教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/blog-page_23.html&quot; target=&quot;_blank&quot;&gt;Eclipse教學及開發相關工具教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/jquery-mobile.html&quot; target=&quot;_blank&quot;&gt;程式開發基本資訊目錄&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://pclevin.blogspot.tw/p/struts.html&quot; target=&quot;_blank&quot;&gt;其它技術教學目錄&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</content><link rel='replies' type='application/atom+xml' href='http://pclevin.blogspot.com/feeds/5496076713790936176/comments/default' title='張貼留言'/><link rel='replies' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-idea-javaxmanagementinstanc.html#comment-form' title='0 個意見'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5496076713790936176'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4363922986149351174/posts/default/5496076713790936176'/><link rel='alternate' type='text/html' href='http://pclevin.blogspot.com/2022/02/spring-boot-idea-javaxmanagementinstanc.html' title='Spring Boot IDEA 專案 啟動時發生錯誤 javax.management.InstanceNotFoundException'/><author><name>Java程式教學甘仔店</name><uri>http://www.blogger.com/profile/06057168169828831626</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjxOnx_TbAe9OoJ6f4Flhh0rRhK3zRkck-jpXzkgUmE5S4m2bTkK9eOlvJnPGmHtJ1lRIIZHUp_zmKjQCajdwS4jRy-xUbBDxU7w1hgFYIIBxWlEJWHPwkwDNGo0fQ6jZleIhQ1CCVMXhGB4mZNos1tCeZeNrDtJlw5zIPjApqLyiotY6Uj4jSjQA3jtw=s72-w640-h184-c" height="72" width="72"/><thr:total>0</thr:total></entry></feed>