2022年04月19日TIL
7751 ワード
Spring MVC
DispatcherServlet
プロセスの処理
DispatcherServiceletからコントローラへのリクエストのマッピング
静的リソースの処理
resourceHandler
resourceHandlerはリクエストをdefault servletに委任し、default servletはリソースを提供します.
@EnableWebMvc
Spring MVCの登録に必要なbean.
resourceChain()
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**")
.addResourceLocations("/resources/")
.setCachePeriod(60)
.resourceChain(true)
.addResolver(new EncodedResourceResolver());
}
setCachePeriod()
キャッシュ設定resourceChain(true)
リクエストに応じてリソースをresourceResolverにマッピングします(デフォルトの解析器はpathResolverですが、chainを使用すると優先度が低下します).resourceChain(true).addResolver(new EncodedResourceResolver())
gzipファイルを優先的に参照します.ファイルが提供されている場合は、ファイルが一般ファイルを提供していません.Thymeleaf
Controller
@GetMapping("/customers")
public String findCustomers(Model model) {
var allCustomers = customerService.getAllCustomers();
model.addAttribute("serverTime", LocalDateTime.now());
model.addAttribute("customers", allCustomers);
return "views/customers";
}
変数式:${変数}
<p th:text="'The time on the server is' + ${serverTime}">----</p>
リンク式:@{リンク}
<img th:src="@{/resources/bg.png}" class="img-fluid">
変数式の選択:*{~}
<tr th:each="customer: ${customers}" th:object="${customer}" >
<td th:text="${customer.customerId}"></td>
<td th:text="*{name}"></td>
<td th:text="*{email}"></td>
<td th:text="*{createdAt}"></td>
<td th:text="*{lastLoginAt}"></td>
</tr>
その他のクリア)
servlet container
IOC Container
ApplicationContext
Reference
この問題について(2022年04月19日TIL), 我々は、より多くの情報をここで見つけました https://velog.io/@yshjft/2022년-04월-19일-TILテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol