Hướng dẫn cài đặt macOS High Sierra 10.13 trên VirtualBox

Leave a Comment

Link Source: Hướng dẫn cài đặt macOS High Sierra 10.13 trên VirtualBox
Thể loại: Thủ thuật
Tags: Máy ảo, Thủ thuật PC, Tool

Hướng dẫn cài macOS High Sierra 10.13 trên VirtualBox Windows


How to Install macOS High Sierra 10.13 on VirtualBox on Windows


Trong bài này mình sẽ Hướng dẫn cài đặt macOS High Sierra 10.13 trên máy ảo VirtualBox trên hiệu điều hành Windows. Apple đã công bố phiên bản tiếp theo là hệ điều hành Mac High Sierra, nhằm mục đích làm cho Mac trở nên đáng tin cậy, có nhiều tính năng tốt hơn.


macosHighSierrainVirtualbox (1)


Song song với việc thông báo ra mắt iOS 11, tại Hội nghị WWDC 2017 Apple cũng mang tới người dùng phiên bản hệ điều hành mới nhất macOS 10.13 High Sierra cho các máy Mac. Khi nâng cấp macOS 10.13 High Sierra, người dùng sẽ được trải nghiệm nhiều tính năng mới như, chuyển sang sử dụng hệ thống tập tin Apple File System (AFS) tăng tốc, thay đổi hệ thống Hierarchical File System (HFS), hỗ trợ tiêu chuẩn video H.265,…


Hãy trải nghiệm macOS High Sierra 10.13 mà không có máy Mac nào!!!


Không dài dòng nữa sau đây mình sẽ Hướng dẫn cài đặt macOS High Sierra 10.13 trên máy ảo VirtualBox trên hiệu điều hành Windows.


Chú ý: Hiện tại đây là chỉ là bản macOS High Sierra 10.13 chỉ mới ra bản beta thôi nên các bước hướng dẫn dưới đây dành cho bản macOS High Sierra 10.13 beta. Lưu ý nên tải link phía dưới bài viết để không có sai lầm nào xảy ra nhé!


Yêu cầu cấu hình tối thiểu máy tính thật:


Ram: 8GB


Intel core i5 2.4GB


HDD: 80gb(dùng 10gb trên 80gb tổng VirtualBox HDD)


Yêu cầu các phần mềm(đã cài đặt trên windows):


Winrar


VirtualBox


macOS High Sierra 10.13 + VirtualBox code (link source: wikigain)


5 bước Cài  macOS High Sierra 10.13 trên VirtualBox


1. Tải về và giải nén file hệ điều hành macOS High Sierra 10.13 dạng vmdk (VirtualBox) và VirtualBox code để thiết lập máy ảo chạy hệ điều hành Mac. 


macosHighSierrainVirtualbox (1)


2.Tạo máy ảo mới trên VirtualBox – New Virtual Machine


Nhập thông tin như hình nhé!


macosHighSierrainVirtualbox (19)


Chọn Ram tối thiểu: 4GB. Chọn ổ cứng là file macOS High Sierra 10.13 đã tải về.


macosHighSierrainVirtualbox (18)


3. Chỉnh sửa máy ảo vừa tạo


Tắt Floppy đĩa mềm.


macosHighSierrainVirtualbox (17)


Chọn ít nhất 2 luồng xử lý hoặc tùy máy bạn(nên chọn phần xanh mà VirtualBox khuyến nghị). Chọn đúng theo hình nhé!


macosHighSierrainVirtualbox (16)macosHighSierrainVirtualbox (15)macosHighSierrainVirtualbox (14)


4. Thêm VirtualBox Code vào CMD để thiết lập máy ảo chạy Mac(quan trọng)


Copy tên máy ảo vừa tạo vào thay thế vào VirtualBox code(text) đã tải phía trên. Lưu ý chỉ cần thay đổi bản 5.x hoặc 4.x


macosHighSierrainVirtualbox (13)


Sau đó thoát VirtualBox. Vào Start -> gõ CMD -> nhấn chuột phải và chọn Run as Admin.


Copy từng dòng vào cd và Enter. (từ dòng cd …) như hình bên dưới.


macosHighSierrainVirtualbox (12)


5. Chạy macOS High Sierra 10.13 trên VirtualBox :))


Ola sắp xong rồi! Mở VirtualBox và Start máy ảo macOS High Sierra 10.13 lên.


macosHighSierrainVirtualbox (11)


Lúc này bạn sẽ bị ngợp bởi 1 đống dòng lệnh(không hiểu gì hết hehe). Thôi kệ đợi nó chạy xong sẽ thấy sự vi diệu không hề nhẹ.


Chú ý: Quá trình chờ nó tải có thể lâu tùy vào máy tính thật của bạn và cấu hình Ram, luồng xử lý được thiết lập lúc đầu nên đừng bỏ cuộc sớm, có thể mất 20 phút.


macosHighSierrainVirtualbox (10)


Sau một hồi chờ lâu, màn hình thiết lập Mac cũng lên. Chọn quốc gia nào tùy bạn. Sau đó chọn Continue. Cứ chọn như hình nhé!


macosHighSierrainVirtualbox (3)


macosHighSierrainVirtualbox (8)


macosHighSierrainVirtualbox (7)


macosHighSierrainVirtualbox (6)


macosHighSierrainVirtualbox (5)


Tạo tài khoản cho máy Mac


macosHighSierrainVirtualbox (2)


macosHighSierrainVirtualbox (3)


macosHighSierrainVirtualbox (2)


Tada! Xong rồi! Bạn có thể install Tool Guest của VirtualBox để chạy tốt hơn. Trải nghiệm macOS High Sierra 10.13 thôi. Chúc vui vẻ ^^


macosHighSierrainVirtualbox (1)


Yêu cầu các phần mềm(đã cài đặt trên windows):


Winrar


VirtualBox


macOS High Sierra 10.13 + VirtualBox code (link source: wikigain)



Link Source: Hướng dẫn cài đặt macOS High Sierra 10.13 trên VirtualBox
Xem Tiếp

Lập trình Spring Boot CRUD đơn giản MyEmployee

Leave a Comment
Link Source: Lập trình Spring Boot CRUD đơn giản MyEmployee
Thể loại: Java, Lập trình
Tags: Lập trình, Spring Framework

Lập trình Spring Boot CRUD đơn giản MyEmployee


springcrud_9

Hướng dẫn lập trình Spring Boot CRUD (thêm, đọc, xóa, sửa) cơ bản. Project MyEmployee này sẽ hướng dẫn làm trang web trên nền Spring Framework chỉ có các tính năng đọc thêm xóa sửa các nhân viên đơn giản. Đây là dự án kết hợp Spring Boot + Spring MVC + Spring Data Hibernate + Thymeleaf Template engine

Yêu cầu công cụ(hoặc công cụ lập trình khác tương tự): 

Elipse + Plugin spring suite tool

Java + Tomcat

MySql

Các bước lập trình Spring Boot CRUD làm như sau ( để chi tiết hơn hãy xem video cuối bài )

Tạo Cơ sở dữ liệu


Ở đây mình sẽ tạo database là myemployee có 1 bảng employee. Trong bảng này sẽ có 3 cột: id, name, phone. Đoạn code tạo bảng:

create table employee(
id int(10) not null auto_increment PRIMARY key,
name nvarchar(100) not null,
phone varchar(13) null
)

springcrud (4)

Tạo project spring boot mới:


File -> New -> Spring Starter Project

Nhập Group và Artifact tùy ý bạn. Ở đây mình nhập: Group là com.example, Package là com.example.demo và Artifact là MyEmployee

springcrud (1)

Nhấn Next, bây giờ ta sẽ thêm các thư viện: nhập “web” để tìm thêm thư viện Spring boot trên web. Tương tự nhập: “JPA”, “MySQL”, “Thymeleaf” để thêm chúng vào project.

springcrud (2)

Nhấn Finish

Project sẽ được build.  Sau khi tạo project xong sẽ có cây thư mục như hình.

springcrud (3)

Thêm thư viện pom.xml


Trong dự án này, mình sử dụng Bootstrap 3.3.7 và jQuery 1.12.4 nên chúng ta sẽ thêm vào pom.xml như sau:

<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.12.4</version>
</dependency>

Lúc này file pom.xml sẽ có nội dung thế này, bao gồm đã thêm thư viện Bootstrap và jquery (phần hightlight)

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>MyEmployee</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>MyEmployee</name>
<description>Demo project for Spring Boot</description>

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.4.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<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>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
<dependency>
<groupId>org.webjars</groupId>
<artifactId>jquery</artifactId>
<version>1.12.4</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>


</project>

Thiết lập project spring boot + hibernate + thymeleaf


Thiết lập file application.properties với hibernate và thymeleaf như sau:

# ===============================
# THYMELEAF
# ===============================
spring.thymeleaf.cache=false
# ===============================
# DATASOURCE
# ===============================

# Set here configurations for the database connection

# Connection url for the database
spring.datasource.url=jdbc:mysql://localhost:3306/myemployee?useSSL=false

# MySQL username and password
spring.datasource.username=root
spring.datasource.password=root

# Keep the connection alive if idle for a long time (needed in production)
spring.datasource.dbcp.test-while-idle=true
spring.datasource.dbcp.validation-query=SELECT 1

# ===============================
# JPA / HIBERNATE
# ===============================

# Use spring.jpa.properties.* for Hibernate native properties (the prefix is
# stripped before adding them to the entity manager).

# Show or not log for each sql query
spring.jpa.show-sql=true

# Hibernate ddl auto (create, create-drop, update): with "update" the database
# schema will be automatically updated accordingly to java entities found in
# the project
spring.jpa.hibernate.ddl-auto=update

# Naming strategy
spring.jpa.hibernate.naming.strategy=org.hibernate.cfg.ImprovedNamingStrategy

# Allows Hibernate to generate SQL optimized for a particular DBMS
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect

Chúng ta cần lưu ý đoạn code kết nối tới cơ sở dữ liệu này. Bao gồm database và user, password kết nối tới mysql server

# Connection url for the database
spring.datasource.url=jdbc:mysql://localhost:3306/myemployee?useSSL=false

# MySQL username and password
spring.datasource.username=root
spring.datasource.password=root

Tạo các class java cho project Spring Boot CRUD


Bắt tay vào tạo class thôi! Do project Spring Boot CRUD chúng ta làm theo mô hình Spring MVC nên cần có các phần (package):

  • Model

  • Repository

  • Service

  • Controller
Đầu tiên chúng ta tạo class Employee.java trong package com.example.demo.model

springcrud (5)

Nội dung tương ứng với bảng đã tạo bên cơ sở dữ liệu như sau:

package com.example.demo.model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name = "employee")
public class Employee implements Serializable
/**
*
*/
private static final long serialVersionUID = 1L;

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name = "id", nullable = false)
private int id;

@Column(name = "name", nullable = false)
private String name;

@Column(name = "phone")
private String phone;

public Employee()
super();


public Employee(int id, String name, String phone)
super();
this.id = id;
this.name = name;
this.phone = phone;


public int getId()
return id;


public void setId(int id)
this.id = id;


public String getName()
return name;


public void setName(String name)
this.name = name;


public String getPhone()
return phone;


public void setPhone(String phone)
this.phone = phone;


Tiếp theo chúng ta tạo class EmployeeRepository.java trong package com.example.demo.repository

Nội dung EmployeeRepository.java được extends CrudRepository như sau:

package com.example.demo.repository;

import java.util.List;

import org.springframework.data.repository.CrudRepository;

import com.example.demo.model.Employee;

public interface EmployeeRepository extends CrudRepository<Employee, Integer>

List<Employee> findByNameContaining(String q);

Tiếp đến chúng ta tạo interface EmployeeService.java và class EmployeeServiceImpl.java implements từ interface EmployeeService.java trong package com.example.demo.service 

interface EmployeeService.java

package com.example.demo.service;
import java.util.List;
import com.example.demo.model.Employee;

public interface EmployeeService
Iterable<Employee> findAll();

List<Employee> search(String q);

Employee findOne(int id);

void save(Employee contact);

void delete(int id);

class EmployeeServiceImpl.java

package com.example.demo.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.demo.model.Employee;
import com.example.demo.repository.EmployeeRepository;

@Service
public class EmployeeServiceImpl implements EmployeeService
@Autowired
private EmployeeRepository employeeRepository;

@Override
public Iterable<Employee> findAll()
return employeeRepository.findAll();


@Override
public List<Employee> search(String q)
return employeeRepository.findByNameContaining(q);


@Override
public Employee findOne(int id)
return employeeRepository.findOne(id);


@Override
public void save(Employee contact)
employeeRepository.save(contact);


@Override
public void delete(int id)
employeeRepository.delete(id);

Cuối cùng chúng ta tạo class EmployeeController.java trong package com.example.demo.controller

package com.example.demo.controller;

import javax.validation.Valid;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import com.example.demo.model.Employee;
import com.example.demo.service.EmployeeService;

@Controller
public class EmployeeController
@Autowired
private EmployeeService employeeService;

@GetMapping("/employee")
public String index(Model model)
model.addAttribute("employees", employeeService.findAll());
return "list";


@GetMapping("/employee/create")
public String create(Model model)
model.addAttribute("employee", new Employee());
return "form";


@GetMapping("/employee/id/edit")
public String edit(@PathVariable int id, Model model)
model.addAttribute("employee", employeeService.findOne(id));
return "form";


@PostMapping("/employee/save")
public String save(@Valid Employee employee, BindingResult result, RedirectAttributes redirect)
if (result.hasErrors())
return "form";

employeeService.save(employee);
redirect.addFlashAttribute("success", "Saved employee successfully!");
return "redirect:/employee";


@GetMapping("/employee/id/delete")
public String delete(@PathVariable int id, RedirectAttributes redirect)
employeeService.delete(id);
redirect.addFlashAttribute("success", "Deleted employee successfully!");
return "redirect:/employee";


@GetMapping("/employee/search")
public String search(@RequestParam("s") String s, Model model)
if (s.equals(""))
return "redirect:/employee";


model.addAttribute("employees", employeeService.search(s));
return "list";

Sau khi xong chúng ta sẽ được cấu trúc thư mục như thế này

springcrud (6)

Tạo giao diện View dùng thymeleaf template


Phần xử lý đã xong bây giờ chúng ta sẽ viết phần view. Các bạn thêm thư mục và các file html như hình trong thư mục src/main/resources

springcrud (7)

Chúng ta cần các trang: hiện danh sách nhân viên, trang thêm/sửa nhân viên. Ở đây chúng ta sẽ viết 3 file html chính: layout.html, form.html, list.html. Đồng thời thêm css cho giao diện trang web đẹp chút  là file style.css trong thư mục static/css

Để tối ưu code giao diện view mình sẽ dùng fragment của thymeleaf  nên chúng ta sẽ viết các phần như head, header và footer chung cho tất cả các trang và bỏ vào file layout.html

Nội dung layout.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:fragment="head">
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />

<title>Spring MyEmployee</title>

<!-- Bootstrap -->
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"
th:href="@/webjars/bootstrap/3.3.7/css/bootstrap.min.css"
rel="stylesheet" />
<!-- Custom style -->
<link href="../static/css/style.css" th:href="@/css/style.css"
rel="stylesheet" />

<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script
src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"
th:src="@/webjars/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
th:src="@/webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>

<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<nav th:fragment="header"
class="navbar navbar-inverse navbar-fixed-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#navbar" aria-expanded="false"
aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" th:href="@/employee">MyEmployee</a>
</div>
</div>
</nav>

<h1>Main content</h1>

<footer th:fragment="footer" class="container">
Copyright © 2017 QLam - ShareEverythings.com
</footer>
</body>
</html>

Mình giải thích chút về đoạn code trên (1 phần thôi còn lại tương tự nhé)

<link href="../static/css/style.css"
th:href="@css/style.css" rel="stylesheet" />

  • Thuộc tính href là của HTML5, cung cấp đường dẫn tới file style.css cho trình duyệt nếu như server chưa run.

  • Thuộc tính th:href là của Thymeleaf, cung cấp đường dẫn tới file style.css cho trình duyệt khi server run. @ mà một biểu thức SPeL xác định đường dẫn.
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"
th:src="@/webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>

Do bootstrap và jquery mình dùng file jar (nằm trong maven dependencies của project) nên sẽ có đường dẫn như sau /webjars/<tên thư viện>/<phiên bản>

Trang list.html sẽ là trang chủ và hiện danh sách nhân viên. Đồng thời hiện thông báo khi thêm/sửa/xóa nhân viên.

Nội dung list.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="layout :: head"></head>
<body>
<nav th:replace="layout :: header"></nav>

<div class="container main-content list">
<div th:if="$success"
class="row alert alert-success alert-dismissible">
<button type="button" class="close" data-dismiss="alert"
aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<span th:text="$success"></span>
</div>
<div class="row">
<a th:href="@/employee/create" class="btn btn-success pull-left">
<span class="glyphicon glyphicon-plus"></span> Add new employee
</a>
<form class="form-inline pull-right" action="#"
th:action="@/employee/search" method="GET">
<div class="form-group">
<input type="text" class="form-control" name="s"
placeholder="Type employee name..." />
</div>
<button type="submit" class="btn btn-primary">Search</button>
</form>
</div>
<th:block th:if="$#lists.isEmpty(employees)">
<h3>No employee</h3>
</th:block>

<th:block th:unless="$#lists.isEmpty(employees)">
<div class="row">
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>No</th>
<th>Name</th>
<th>Phone</th>
<th>Edit</th>
<th>Delete</th>
</tr>
</thead>
<tbody>
<tr th:each="contact,iterStat : $employees">
<td th:text="$iterStat.count"></td>
<td th:text="$contact.name"></td>
<td th:text="$contact.phone"></td>
<td><a th:href="@/employee/id/edit(id=$contact.id)"><span
class="glyphicon glyphicon-pencil"></span></a></td>
<td><a th:href="@/employee/id/delete(id=$contact.id)"><span
class="glyphicon glyphicon-trash"></span></a></td>
</tr>
</tbody>
</table>
</div>
</th:block>
</div>
<!-- /.container -->

<footer th:replace="layout :: footer"></footer>
</body>
</html>

Mình giải thích chút (1 phần thôi còn lại tương tự nhé)

<footer th:replace="layout :: footer"></footer>

  • layout là tham chiếu tới file layout.html

  • head, headerfooter sau :: là các fragment selector, chính là giá trị của thuộc tính th:fragment của các thẻ head, navfooter ở file layout.html
  • Thuộc tính th:each tương ứng với “câu lệnh foreach”

  • Thuộc tính th:text dùng để đổ dữ liệu dưới dạng text vào thẻ HTML

  • $contacts là một iterated variable, chính là đối tượng contacts truyền từ Controller

  • contact là một iteration variable

  • iterStat là một status variable giúp chúng ta theo dõi vòng lặp, biến count sẽ lấy ra chỉ số hiện tại của vòng lặp (bắt đầu từ 1)
Trang form.html sẽ hiện form thêm/sửa nhân viên.

Nội dung form.html

<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head th:replace="layout :: head"></head>
<body>
<nav th:replace="layout :: header"></nav>

<div class="container main-content form">
<div class="row">
<form action="#" th:action="@/employee/save" th:object="$employee"
method="POST" novalidate="novalidate">
<input type="hidden" th:field="*id" />
<div class="form-group">
<label>Name</label>
<input type="text" class="form-control"
th:field="*name" />
</div>
<div class="form-group">
<label>Phone</label>
<input type="text" class="form-control" th:field="*phone" />
</div>
<button type="submit" class="btn btn-primary">Save</button>
</form>
</div>
</div><!-- /.container -->

<footer th:replace="layout :: footer"></footer>
</body>
</html>

Mình giải thích chút (1 phần thôi còn lại tương tự nhé)

Mỗi thuộc tính của employee sẽ tương ứng với một input trong form. Nên mình sẽ thêm thuộc tính th:field=*fieldName vào các input. Do khi submit form, chúng ta cần phải chỉ cho Hibernate biết entity nào được ánh xạ qua(mapping), ví dụ <input type="hidden" th:field="*id" /> để chỉ ra ID của entity Employee.

Nội dung style.css

.main-content 
min-height: 500px;
max-width: 700px;
margin-top: 70px;


.list
max-width: 800px;


.form
max-width: 450px;


.row
margin-top: 30px;


.table th, td
text-align: center;


.field-error
border: 1px solid #ff0000;
margin-bottom: 10px;

Xong. Mọi thứ đã ổn chạy chương trình thôi nào ! Nhấn phải project chọn Run as -> Spring Boot App. Vào trình duyệt web gõ: localhost:8080/employee (hoặc cổng port của bạn). “/employee” do bạn đã thiết lập trong controller.

springcrud (8)

Kết quả: Lập trình Spring Boot CRUD đơn giản MyEmployee


springcrud_9


Download source code



Video hướng dẫn chi tiết Lập trình Spring Boot CRUD đơn giản MyEmployee





Link Source: Lập trình Spring Boot CRUD đơn giản MyEmployee
Xem Tiếp

Matlab 2016b 64 bit Full Portable 1GB Link Direct - Phần mềm toán học

Leave a Comment

Link Source: Share Everything
Thể loại: Phần mềm PC
Tags: Học hành, Lập trình, Mô phỏng, Phần mềm, Phần mềm giải toán

Matlab 2016b 64 bit Full Portable 1GB Link Direct – Phần mềm toán học chuyên nghiệp


matlab 2016b


Matlab 2016b là một phần mềm toán học khá nổi tiếng trên thế giới giúp bạn có thể để tính toán kỹ thuật (The Language of Technical Computing) trên các số và có tính trực quan khá là cao. Phần mền Matlab có khá nhiều phiên bản như Matlab 2010, 2012, 2013, 2015…. và phiên bản mởi nhất của nó là Matlab 2016b.

Phần mền Matlab 2016b được tích hợp  rất nhiều lệnh và hàm tiện ích nên giúp bạn dễ dàng thao tác. Trong Toolbox của phần mền này tích hợp cho bạn các lệnh riêng biệt rất  quan trọng hướng đến người dùng như ma trận, xử lý âm thanh, logic mờ…


Xem bản cũ Mathworks Matlab R2014a 8.3 Build 532 Full có hướng dẫn chi tiết cài đặt


matlab 2016b


matlab 2016b


 Có gì mới trong MathWorks MATLAB R2016b


  • Máy tính để bàn
    – Live Editor: Tạo và chạy các kịch bản trực tiếp với đầu ra nhúng; thêm phương trình và hình ảnh để nâng cao trình thuật tương tác
    – Hộp công cụ: Lập trình gói và cài đặt tùy chỉnh các toolbox với gói matlab.addons.toolbox MATLAB
    – Tab hoàn thành: tên tham số toàn bộ và tùy chọn trong chọn MATLAB chức năng cuộc gọi
    – Tạm dừng Button: Tạm dừng việc thực hiện một chương trình từ Editor và vào chế độ gỡ lỗi
    – Hộp công cụ: Tùy chỉnh bổ sung vào con đường MATLAB khi cài đặt hộp công cụ
    – Sở thích: Di chuyển ưu đãi từ các phiên bản MATLAB lên đến ba bản phát hành trước bản phát hành bắt đầu lên
    – VerLessThan Chức năng: So sánh các phiên bản
    – Quốc tế hóa: lược đồ mã hóa mặc định trên nền tảng Mac sẽ thay đổi trong một phiên bản tương lai

  • Ngôn ngữ và lập trình
    – Datetime Object: Thiết lập miền địa phương mặc định và định dạng của các đối tượng datetime thông qua bảng Preference
    – Số không, những người thân, và chức năng mắt: Tạo mảng logic
    – Cellstr, deblank, và chức năng strtrim: Giữ ký tự khoảng trắng đáng kể khi tháo đứng đầu hoặc cuối
    – Rowfun và varfun Chức năng: Tạo bảng đầu ra không có tên hàng khi sử dụng các tham số ‘GroupingVariables’
    – Debugging: Đặt breakpoint trong khi MATLAB đang thực hiện
    – Chức năng đang được gỡ bỏ hoặc thay đổi

  • Toán học
    – Di chuyển kê Chức năng: Tính toán chuyển động thống kê sử dụng movmean, movsum, movmedian, movmax, movmin, movvar, và chức năng movstd
    – Datetime và thời gian Mảng: Tính độ lệch chuẩn với std
    – Datetime và thời gian Mảng: Bỏ qua Nans và NAT sử dụng ‘omitnan’ hoặc ‘omitnat’ trong các chức năng có nghĩa là, trung bình, tiêu chuẩn, và tổng hợp
    – Đồ thị và digraph Lớp học: Phân tích biểu đồ và sử dụng mạng lưới trung tâm và các nút chức năng gần
    – Svds Chức năng: Tính giá trị ít được cải thiện hiệu suất và hành vi tụ với một loạt các ma trận
    – Chức năng trung bình: trung vị với cải thiện hiệu suất Tính
    – Rau cần, cummax, cumprod, và cumsum Chức năng: Tính tích lũy tối thiểu, tối đa, sản phẩm, và tổng hợp với cải thiện hiệu suất
    – GraphPlot Đối tượng: tương tác kiểm tra lô đồ sử dụng con trỏ dữ liệu và lựa chọn cốt truyện

  • Đồ họa
    – Polarplot Chức năng: Dữ liệu Lô trong tọa độ cực và sửa đổi các thuộc tính của trục cực
    – Yyaxis Chức năng: Tạo biểu đồ với y hai trục và tùy chỉnh mỗi trục y riêng
    – Huyền thoại Object: Thêm danh hiệu huyền thoại và tạo callbacks để làm nổi bật âm mưu khi nhấp mục huyền thoại
    – Histogram2 Chức năng: Cho phép dữ liệu liên kết và đánh răng cho biểu đồ hai biến
    – Chức năng Plots: Hình dung biểu thức toán học như dòng tham số, bề mặt, và các lô đường viền
    – Hiển thị đồ họa: Render lô với số lượng lớn các dấu nhanh hơn
    – 3-D Pan và Zoom: Khám phá dữ liệu được cải thiện chảo và hành vi zoom cho trục trong một lần xem 3-D
    – Graphics Drivers: Sử dụng trình điều khiển mới nhất để tránh bất ổn với trình điều khiển NVIDIA Windows cũ hơn
    – In hình Kích thước: In hoặc lưu số liệu phù hợp với kích thước của hình trên màn hình theo mặc định
    – In Chức năng: con số In mà điền vào các trang bằng cách sử dụng ‘-fillpage’ và các tùy chọn ‘-bestfit’
    – Hình Menu: Lưu con số mà tôn vinh những giá trị PaperPosition cách sử dụng File> Save As
    – Chức năng đang được gỡ bỏ hoặc thay đổi

  • App Building
    – Ứng dụng thiết kế: Xây dựng ứng dụng MATLAB với đường và tán xạ âm mưu sử dụng một môi trường thiết kế được nâng cao và một thành phần giao diện người dùng mở rộng bộ

  • Số liệu nhập khẩu và xuất khẩu
    – Writetable Chức năng: Viết thư cho tập tin văn bản nhanh hơn đáng kể, đặc biệt là cho các tập tin lớn
    – Chức năng readtable: Đọc từ tập tin Excel với hiệu suất nhanh hơn
    – Writetable Chức năng: Viết thư cho file Excel trên nền tảng Mac và Linux
    – SpreadsheetDatastore Chức năng: Nhập và xử lý số liệu từ một bộ sưu tập các tập tin Excel
    – Kho dữ liệu Chức năng: Nhập đối tượng TabularTextDatastore với cải thiện phát hiện định dạng tập tin
    – ImageDatastore Object: Chỉ định nhãn hình ảnh bằng cách sử dụng Nhãn tài sản và quá trình với splitEachLabel, countEachLabel, và chức năng trộn
    – FileDatastore Chức năng: Tạo một kho dữ liệu tùy chỉnh cho một bộ sưu tập tập tin quá lớn để vừa trong bộ nhớ
    – Chức năng readtable: Đọc tập tin văn bản với tự động phát hiện các ký tự phân cách, dòng tiêu đề, và các tên biến
    – TabularTextDatastore và imageDatastore Chức năng: Tạo các đối tượng nhập khẩu lớn bộ sưu tập văn bản và dữ liệu hình ảnh
    – Writetable Chức năng: Phát hiện văn bản có ký tự phân cách nhúng tự động và viết dưới dạng văn bản trích dẫn
    – TabularTextDatastore Đối tượng: Đọc tập tin văn bản với tự động phát hiện các ký tự phân cách, dòng tiêu đề, và các tên biến
    – Imread Chức năng: Tạo C-mã sử dụng MATLAB Coder
    – Chức năng đang được gỡ bỏ hoặc thay đổi

Yêu cầu hệ thống:


Ram: 2Gb trở lên.

Ổ cứng: Cần 2Gb trở lên để lưu trữ matlab, 4-6Gb để lưu trữ các lựa chọn cài đặt thêm.

Hệ điều hành: Window Server 2008, Window Server 2012, Window 7 Service Pack 1, Window 8, Wind0w 8.1, Window 10.
Lưu ý: matlab 2016 không hỗ trợ phiên bản 32 bit nữa, chỉ có duy nhất phiên bản 64bit. Bạn có thể dùng bản 2014 với 32 bit link bên dưới.


Bản Matlab 2016b Portable chỉ 1 gb tải về và chạy ( không cần cài hay crack gì cả 🙂 )


Hướng dẫn cài Matlab 2016b Full qua 3 bước


1.Cài đặt và chọn “Use a File Installation Key” nhập key:



09806-07443-53955-64350-21751-41297


– Để cài Matlab Production Server nhập key này:



40236-45817-26714-51426-39281


2. Chọn file license_standalone.lic để activate,

hoặc trong thư mục cài đặt matlab copy file license_standalone.lic bỏ vào thư mục “licenses” và chạy matlab without active.

3.Sau khi cài đặt xong, copy các file tương ứng trong thư mục crack chép đè lên các file ở thư mục đã cài đặt của matlab.


How to crack matlab 2016b

Setup & choose “Use a File Installation Key”

enter key:

09806-07443-53955-64350-21751-41297

– To setup Matlab Production Server enter the key:

40236-45817-26714-51426-39281

– Browser to license_standalone.lic to activate,

or copy license_standalone.lic file to “licenses” folder and run matlab without active.

After setup success, copy files in crack folder to matlab setup folder (replace if it is exitst).


Video hướng dẫn cài đặt Matlab 2016b Full


Xem bản cũ Mathworks Matlab R2014a 8.3 Build 532 Full x32 and x64 có hướng dẫn chi tiết cài đặt


Download Matlab 2016b FULL and Portable link direct 8gb


Đã bao gồm Bản Matlab 2016b Portable chỉ 1 gb tải về và chạy ( không cần cài hay crack gì cả 🙂 )



Link Source: https://shareeverythings.com/phan-mem-pc/matlab-2016b-full-portable-phan-mem-toan-hoc/
Xem Tiếp

Lập trình Hello World trong Spring boot với JSP View

Leave a Comment
Link Source: https://shareeverythings.com/lap-trinh/java/lap-trinh-hello-world-trong-spring-boot-voi-jsp-view/
Thể loại: Java, Lập trình
Tags: Lập trình, Spring Framework

Lập trình Hello World trong Spring boot với JSP View


helloworld_springboot_jspview (9)

Hướng dẫn lập trình in ra dòng chữ hello world đơn giản cho project java Spring boot với giao diện view là jsp.

Yêu cầu công cụ(hoặc công cụ lập trình khác tương tự): 

Elipse + Plugin spring suite tool

Java + Tomcat

Các bước làm như sau ( để chi tiết hơn hãy xem video cuối bài )

Tạo project spring boot mới:


File -> New -> Spring Starter Project

Nhập Group và Artifact tùy ý bạn. Ở đây tôi nhập: Group là com.example và Artifact là demosimplehello

Nhấn Next sau đó nhập “web” để tìm thêm thư viện Spring boot trên web

Nhấn Finish

Project sẽ được build.  Sau khi tạo project xong sẽ có file DemosimplehelloApplication.java như hình.

helloworld_springboot_jspview (1)

Khai báo thư viện trong file pom.xml


Mở file pom.xml thêm các dependency như sau:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<!-- Tomcat embedded container -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

<!-- JSTL for JSP -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>

<!-- Need this to compile JSP -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>

<!-- Need this to compile JSP, tomcat-embed-jasper version is not working,
no idea why -->
<dependency>
<groupId>org.eclipse.jdt.core.compiler</groupId>
<artifactId>ecj</artifactId>
<version>4.6.1</version>
<scope>provided</scope>
</dependency>
<!-- Optional, test for static content, bootstrap CSS -->
<dependency>
<groupId>org.webjars</groupId>
<artifactId>bootstrap</artifactId>
<version>3.3.7</version>
</dependency>
</dependencies>

Tiếp theo tạo file SpringController.java cùng package với file DemosimplehelloApplication.java

helloworld_springboot_jspview (2)

helloworld_springboot_jspview (3)

Thêm nội dung vào file SpringController.java như sau

@Controller
public class SpringController
//@Value("$welcome.message:test")
private String message="Hello world";

@RequestMapping("/")
public String hello(Map<String, Object> model)
model.put("message", this.message);
return "welcome";

Ở đây chỉ khai báo biến là “message” để in ra màn hình. Dùng @RequestMapping(“/”) để mặc định chạy hàm hello khi người dùng chạy localhost:8080. Trong hàm này tôi return về “welcome” đây là trang jsp view lát nữa chúng ta sẽ tạo nó. Tôi truyền dữ liệu sang jsp view thông qua kiểu dữ liệu Map<key,value> tên là model.

Khởi tạo view file giao diện


Trước khi tạo file giao diện ta phải cấu hình liên kết giữa view và controller qua file application.properties

helloworld_springboot_jspview (8)

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

Tham sốprefix để trỏ tới thư mục view mà ta return “welcome” trong file SpringController.java

Suffix chỉ là định dạng file view ở đây là .jsp

Tạo đường dẫn thư mục src/main/webapp/WEB-INF/jsp và file welcome.jsp như hình

helloworld_springboot_jspview (4)

Nội dung file welcome.jsp

<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<html lang="en">
<head>

<!-- Access the bootstrap Css like this,
Spring boot will handle the resource mapping automcatically -->
<link rel="stylesheet" type="text/css" href="webjars/bootstrap/3.3.7/css/bootstrap.min.css" />
<link href="/css/main.css" rel="stylesheet" />

</head>
<body>
<!-- Class in bootstrap -->
<nav class="navbar navbar-inverse">
<div class="container">
<div class="navbar-header">
<a class="navbar-brand" href="#">Spring Boot</a>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="#about">About</a></li>
</ul>
</div>
</div>
</nav>

<div class="container">
<h1>Welcome to Share Everything - Spring Boot Web JSP Simple Example</h1>
<h2>Message: $message</h2>
</div>

<script type="text/javascript" src="webjars/bootstrap/3.3.7/js/bootstrap.min.js"></script>

</body>

</html>

Chúng ta bổ sung các file thư viện css hay js vào đường dẫn src/main/resources/static ở đây tôi tạo thư mục css chứa file main.css

helloworld_springboot_jspview (5)

Nội dung file main.css

h1{
color:#0000FF;}

h2{
color:#FF0000;}

Xong rồi. Chúng ta chạy chương trình lên. Sau đó vào trình duyệt gõ localhost:8080 (tùy cổng port của bạn).

helloworld_springboot_jspview (6)

Kết quả Spring boot web jsp


helloworld_springboot_jspview (9)

Nếu bị lỗi này bạn hãy xem lại đã cấp hình cho file application.properties chưa.

helloworld_springboot_jspview (7)

Video hướng dẫn chi tiết Hello World với Spring boot và jsp view





Download project tại đây




Link Source: https://shareeverythings.com/lap-trinh/java/lap-trinh-hello-world-trong-spring-boot-voi-jsp-view/
Xem Tiếp

Citra 3DS Emulator - Giả lập chơi game 3DS

Leave a Comment

Thể loại: Phần mềm PC
Tags: Giả lập, Phần mềm

Citra 3DS Emulator – Giả lập chơi game 3DS


Citra 3DS Emulator


Citra 3DS Emulator là một phần mềm mô phỏng giả lập(emulator) máy chơi game Nintendo 3DS được viết bằng C ++.


Citra 3DS Emulator hiện tại vẫn còn đang trong quá trình phát triển nên vẫn còn tồn tại nhiều lỗi và trục trặc. Dù vậy, với các bản Citra 3DS Emulator hiện tại ta vẫn có thể chiến tốt khá nhiều game 3DS nổi tiếng.


Các tính năng của Citra 3DS Emulator bao gồm xử lý hình ảnh tốt hơn, gỡ lỗi homebrew, với sự hỗ trợ controller như máy thật.


Citra 3DS Emulator


Sau khi tải về các bạn chỉnh lại cấu hình ứng dụng cho phù hợp với mình. Về cơ bản, thiết kế mặc định sẽ chạy ổn với hầu hết các máy.


Citra 3DS Emulator


Citra 3DS Emulator

Bây giờ việc các bạn cần làm là chỉnh các nút bấm cho phù hợp với ý thích của mình. Các bạn thực hiện Emulation -> Configure -> chọn thẻ Input.


Citra 3DS Emulator


Video demo


Download Citra 3DS Emulator


Hiện tại trang chủ của citra có 2 bản đó là nightly build và Bleeding Edge build.


Bản Nightly build tạm gọi là bản chính thức mặc dù vẫn đang phát triển. Nó được trau chuốt nhiều hơn, đã được test và review bởi người chơi. Bản Nightly này dành cho ai muốn trải nghiệm ổn định.


Bản Edge tạm gọi là beta, tức chưa được test hay fix lỗi, nhưng nó được cập nhật mới nhất. Bản Edge build phù hợp cho ai muốn trải nghiệm bản mới nhất với nhiều tính năng mới.


Tải tại trang chủ của Citra 3DS Emulator


Download Citra 3DS Emulator Bản mod


Ngoài ra còn bản đã được hack hay mod lại để chạy nhanh hơn, mượt hơn. Bao gồm có mục dùng cheat cho game và fix lỗi shared fonts not found. Lỗi này do thiếu file font cho bản rom.


Bạn có thể tải 1 trong 2 bản dưới đây:


Citra Hacked Thunder Build


Citra JIT gdmk


Link tải 3DS Emulator Hacked


Tải Rom Pokemon Sun và Pokemon Moon 3DS tại đây



Link Source: https://shareeverythings.com/phan-mem-pc/citra-3ds-emulator-gia-lap-choi-game-3ds/
Xem Tiếp

RPG Maker MV Full Repack - Tạo game RPG dễ dàng

Leave a Comment

Thể loại: Phần mềm PC
Tags: Designer, Học hành, Phần mềm

RPG Maker MV 1.4.0 Full Repack – Tạo game RPG dễ dàng


RPG-Maker-MV (1)


RPG Maker MV 1.4.0 Full Repack Là một công cụ được thiết kế cho các fan dòng game RPG.


Với RPG Maker XP bạn có thể tạo ra một game RPG của chính mình…


Nó đi kèm với một giao diện trực quan, gần gũi, dễ sử dụng. Nó được “tiến hoá” từ RPG Maker 2000, với khả năng đồ hoạ, sắp đặt màn ảnh trận đánh, những đặc tính đóng gói dữ liệu tốt hơn bao giờ hết.


RPG-Maker-MV (2)


RPG Maker MV 1.4.0 Full Repack Is a tool designed for RPG fans corporation ar yearning for associate approachable manner that of installing region their possess little undertaking. It comes with a clearly whole interface and a particularly flush abilties that has the entirety you desire to from tilesets to man or woman manipulation to scripting.


RPG Maker MV makes things quite simple correct from the start as its graphical software program makes it a cinch to navigate and recognize the whole lot you preference to. In partner fully left facet pane you get the reasons of the tileset of your particularly a diffusion of, at the very tremendous you study pretty a spread of important shortcuts and suitable hooked up menus, and most of the sector is left for the design floor for each and each mission.


RPG-Maker-MV (2)


Effortlessly building the extent one layer at a time (sure, there can be multilayer useful resource) comes proper the entire manner the complete method right right down to clicking on the object, texture, persona you want to and golfing stroke it on the ‘canvas’. When you come to be that piece of the region you may be succesful to in simple phrases add new habitual and hyperlink them to super triggers. While you development into nearly basically the most elements there can be plenty to appear out out related to RPG Maker MV and what it’s miles to give even though fortunately, it comes with companion outsize facilitate document that explains the whole thing.


RPG-Maker-MV (1)


To entire problems up, RPG Maker MV 1.4.0 may be an satisfactory device to make use of must you’re interested by seeing what quantity artwork is needed to kind employment participating in-activity. There is lots to maintain in thoughts approximately, lots for paintings earlier besides you certainly finish it but it’s a neat software and it’s nicely appropriate worth the time you pay.


Cấu hình yêu cầu – System Requirements:


Windows 7/8/10 (32 and 64 bit)

Intel Core2Duo

2 GB RAM

2 GB Disk space


Download RPG Maker MV 1.4.0 Full Repack 660Mb


Download Link 



Link Source: http://downloadgamesoftfull.22web.org/phan-mem-pc/rpg-maker-mv-full-repack-tao-game-rpg-de-dang/
Xem Tiếp