Course Mô-đun 3 - Lecture: Xây dựng một dự án chiến tranh

Sự không giống nhau đằm thắm tập luyện tin yêu war và jar

Trên thực tiễn , tủ sách jar chỉ là một trong những kho tàng trữ zip, xuất phân phát thẳng kể từ thương hiệu của nó: Lưu trữ Java . Thông thông thường nó chỉ chứa chấp tư điều:

  • các lớp biên soạn;
  • tài nguyên: tệp tính chất và những loại tương tự;
  • bảng kê khai MANIFEST.MF;
  • các tủ sách jar không giống (hiếm).

Cấu trúc nổi bật của một kho tàng trữ như thế nhìn như vậy này:

Bạn đang xem: Course Mô-đun 3 - Lecture: Xây dựng một dự án chiến tranh

  META-INF/
  	MANIFEST.MF
  com/
  	codegym/
	      MyApplication.class
  application.properties

Bây giờ hãy kiểm tra một tập luyện tin yêu cuộc chiến tranh nổi bật. Nhân tiện, cuộc chiến tranh ko cần kể từ cuộc chiến tranh, tuy nhiên kể từ W eb Ar chive . Cấu trúc của tệp cuộc chiến tranh thông thường phức tạp rộng lớn. Thông thông thường nó bao hàm nhị phần:

  • phần Java
    • lớp tổng hợp
    • tài nguyên vẹn cho những lớp java: tệp tính chất và những loại tương tự
    • các tủ sách jar không giống (thường)
    • bảng kê khai MANIFEST.MF
  • phần web
    • web-xml - cỗ tế bào mô tả tổ chức thực hiện cty web
    • jsp servlet
    • tài nguyên vẹn trang web tĩnh: tệp HTML, CSS, JS

Một ví dụ về một tập luyện tin yêu cuộc chiến tranh điển hình:

META-INF/
    MANIFEST.MF
WEB-INF/
    trang web.xml
    jsp/
    	helloWorld.jsp
    classes/
    	static/
    	templates/
    	application.properties
    lib/
    	// *.jar files as libs

Quan trọng! jar chỉ hoàn toàn có thể được chạy vì như thế máy java, tuy nhiên nhằm chạy tệp cuộc chiến tranh, nó cần được chuyển vận lên sever trang web. Nó ko tự động chính thức.

plugin tập luyện tin yêu cuộc chiến tranh với maven-war-plugin

Hãy tưởng tượng rằng tất cả chúng ta với 1 dự án công trình trang web giản dị và đơn giản. Cho project với cấu hình tệp tin như thế thì tất cả chúng ta ráp nó như vậy nào?

|-- pom.xml
 `-- src
 	`-- main
     	|-- java
     	|   `-- com
     	|   	`-- example
     	|       	`-- projects
     	|           	`-- SampleAction.java
     	|-- resources
     	|   `-- images
     	|   	`-- sampleimage.jpg
     	`-- webapp
         	|-- WEB-INF
         	|   `-- trang web.xml
         	|-- index.jsp
         	`-- jsp
             	`-- websource.jsp

Trước tiên, tất cả chúng ta cần thiết đòi hỏi Maven kiến thiết toàn bộ những loại này bên dưới dạng tệp chiến tranh , ví dụ: với thẻ <package> mang đến tệp này :

	<project>
  	...
      <groupId>com.example.projects</groupId>
      <artifactId>simple-war</artifactId>
  	<packaging>war</packaging>
      <version>1.0-SNAPSHOT</version>
  	<name>Simple War Project</name>
      <url>http://goiviettel.vn</url>
  	...
    </project>

Thứ nhị, tất cả chúng ta cần thiết bao hàm plugin maven-war-plugin . Ví dụ:

  <build>
	<plugins>
  	<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
    	<version>3.3.2</version>
    	<configuration>
          <webappDirectory>/sample/servlet/container/deploy/directory</webappDirectory>
    	</configuration>
      </plugin>
    </plugins>
  </build>

Ở phía trên công ty chúng tôi hướng dẫn và chỉ định nghĩa một plugin hoàn toàn có thể được lăm le thông số kỹ thuật vô sau này. Bên cạnh đó, bằng phương pháp dùng thẻ webappDirectory , công ty chúng tôi xác lập lại folder tuy nhiên dự án công trình sẽ tiến hành tổ chức thực hiện. Bây giờ tôi tiếp tục cho mình hiểu biết thêm về những gì tôi đang được nói tới.

Plugin hoàn toàn có thể được bịa đặt trở nên nhị cơ chế kiến thiết (hai loại mục tiêu):

  • chiến tranh:chiến tranh
  • chiến tranh: bùng nổ

Trong tình huống trước tiên, tệp cuộc chiến tranh sản phẩm chỉ được bịa đặt vô folder đích và được mệnh danh là <artifactId>-<version>.war .

Nhưng bạn cũng có thể “yêu cầu” plugin nhằm nội dung của tệp cuộc chiến tranh được bịa đặt vô folder sau cùng ở tình trạng tuy nhiên sever trang web bên phía trong tiếp tục bung file nó. Đối với điều này, tiềm năng war:exploded được dùng .

Cách tiếp cận loại nhị thông thường được dùng nếu như khách hàng đang làm việc hoặc gỡ lỗi một dự án công trình thẳng kể từ Intellij IDEA.

Nhân tiện, thẻ webappDirectory vô ví dụ bên trên được chấp nhận các bạn xác lập lại folder điểm tệp cuộc chiến tranh của các bạn sẽ được bung file Lúc kiến thiết ở cơ chế war:exploded.

Xem thêm: Seaborgi

Bạn hoàn toàn có thể dò thám hiểu về những thiết đặt plugin không giống kể từ trang đầu tiên của chính nó .

Xây dựng phần mềm trang web bên trên SpringBoot

Chà, tôi ham muốn tháo dỡ tách một số trong những ví dụ thi công ráp thực tiễn. Đừng nhằm những chuyện tủn mủn và kiểm tra điều này bằng phương pháp dùng một phần mềm ví dụ dựa vào SpringBoot.

Bước một. Tạo một dự án công trình trang web Maven trống rỗng với IDEA.

Bước nhị. Thêm những dựa vào Spring vô tệp pom.xml của chính nó.

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

Bước loại tía. Tạo một tấm com.codegym.spring.MainController . Nó rất cần phải bịa đặt vô folder src/main/java :

@Controller
public class MainController {

	@GetMapping("/")
    public String viewIndexPage(Model model) {
        model.addAttribute("header", "Maven Generate War");
    	return "index";
	}
}

Có 3 điều được tế bào mô tả ở phía trên. Thứ nhất, chú quí @Controller rằng với khuông công tác làm việc SpringBoot rằng lớp này sẽ tiến hành dùng nhằm đáp ứng những đòi hỏi trang web cho tới.

Thứ nhị, chú quí @GetMapping cho rằng cách thức của tất cả chúng ta sẽ tiến hành gọi nhằm đáp ứng đòi hỏi GET bên trên URI gốc - /

Thứ tía, cách thức trả về chuỗi "index" . Điều này đòi hỏi khuông công tác làm việc SpringBoot trả về nội dung của tệp index.html bên dưới dạng phản hồi .

Bước tư. Bạn cần thiết thêm 1 tệp tin index.html vô project với nội dung như sau:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Index</title>
    <!-- Bootstrap core CSS -->
    <link th:href="@{/css/bootstrap.min.css}" rel="stylesheet">
</head>
<body>
    <nav class="navbar navbar-light bg-light">
    	<div class="container-fluid">
        	<a class="navbar-brand" href="#">
            	CodeGym Tutorial
        	</a>
    	</div>
    </nav>
    <div class="container">
    	<h1>[[${header}]]</h1>
    </div>
</body>
</html>

Nó không chỉ có là html. Trước Lúc nội dung của chính nó được hỗ trợ mang đến máy khách hàng, nó sẽ tiến hành sửa thay đổi bên trên sever vì như thế khuông Thymeleaf . Các thẻ quan trọng đặc biệt được nhúng vô tệp này, được chấp nhận tủ sách Thymeleaf xử lý và sửa thay đổi nội dung của trang.

Các thẻ red color là những thẻ sẽ tiến hành xử lý vì như thế tủ sách Thymeleaf, những thẻ màu xanh lá cây lá cây là những loại của tủ sách Bootstrap CSS.

Xem thêm: 5 bước giúp bạn đọc và hiểu rõ “tận gốc” về bảng thành phần dinh dưỡng (Nutrition Labels)

Bước năm. Đặt plugin vô pom.xml:

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.3.1</version>
</plugin>

Tôi đang được Đánh Giá quá cao sức khỏe của tớ một ít. Phải thất lạc thật nhiều thời hạn nhằm phân tách khá đầy đủ một ví dụ giản dị và đơn giản. Nhưng bạn cũng có thể chuyển vận xuống mã khá đầy đủ của dự án công trình kể từ GitHub và nỗ lực tự động hiểu nó. Nhân tiện, 80% thời hạn thao tác của chúng ta, các bạn sẽ thực hiện điều này :)

Bạn hoàn toàn có thể chuyển vận xuống mã khá đầy đủ kể từ links vô GitHub .

BÀI VIẾT NỔI BẬT


Con rắn tiếng Anh là gì? - Let's Talk English Center

Con rắn tiếng Anh là gì?Câu trả lời: Snake /sneɪk/ Một số từ vựng liên quan đến con rắn: Alligator: cá sấu Mỹ Black caiman: cá sấu đen Blue-tongued skink: thằn lằn lưỡi xanh Anaconda: trăn Nam Mỹ Chameleon: tắc kè hoa Asp: rắn mào Bearded dragon: rồng ÚcCorn snake: rắn ngô Black racer: rắn […]

U WOT và U WOT M8 nghĩa là gì?

Nghĩa của u wot m8 là gì trong Tiếng Anh? Chúng ta đôi khi có thể nhìn thấy câu nói này trên mạng internet, đặc biệt là trong các games – trò chơi trực tuyến hay meme. Vậy hãy cùng nhau tìm hiểu nhé.

Quy hoạch tuyến tính – Phần 1

Quy hoạch tuyến tính (Linear programming) là một trong những dạng bài toán tối ưu cơ bản nhất. Dạng bài toán này yêu cầu chúng ta phải tối ưu hóa một hàm mục tiêu tuyến tính và phải thỏa mãn một số…

gen của sinh vật nhân thực , exon là đoạn

ID 469483. gen của sinh vật nhân thực , exon là đoạn A. không mã hóa chocacs axit amin B. mã hóa cho các axit amin C. mang tín hiệu khởi động và kiểm soát quá trình phiên mã D. Mang tín hiệu kết thúc phiên mã