1. java + react 实现 HRM
1. 云服务的三种方式
1.1 IAAS 基础设施即服务 ,只会提供基础的设施,eg:服务器,网络等 ;
1.2 PAAS 平台即服务 ,提供平台,可以把自己写好的代码部署到平台上 ;
1.3 SAAS 软甲即服务 eg:hrm,cms,crm等 ;提供所有的服务 ;【部署到互联网】;
2. 使用技术
后端:sprinboot 全家桶 ;jdk1.8 ; maven ; 数据库 mysql ;
j前端:react ;
3. 框架搭建
1. 新建maven 项目 【父目录】
<?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>org.example</groupId> <artifactId>java_hrm</artifactId> <version>1.0-SNAPSHOT</version> <!-- <properties>--> <!-- <maven.compiler.source>8</maven.compiler.source>--> <!-- <maven.compiler.target>8</maven.compiler.target>--> <!-- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>--> <!-- </properties>--> <packaging>pom</packaging> <name>ihrm_parent</name> <description>IHRM-黑马程序员</description> <modules> <module>ihrm_common</module> <module>ihrm_common</module> <module>ihrm_common_model</module> </modules> <!-- springboot 版本--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.5.RELEASE</version> <relativePath/> </parent> <!-- 项目属性 --> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> <fastjson.version>1.2.47</fastjson.version> </properties> <!-- 使用 springBoot 需要相关的坐标 --> <!-- 使用 maven install 坐标 --> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>${fastjson.version}</version> </dependency> <!-- lombok插件 快速生成 get set 方法 --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.16.16</version> </dependency> </dependencies> <repositories> <repository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>spring-snapshots</id> <name>Spring Snapshots</name> <url>https://repo.spring.io/snapshot</url> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository> <pluginRepository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </pluginRepository> </pluginRepositories> <build> <plugins> <!--编译插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.1</version> <configuration> <source>${java.version}</source> <target>${java.version}</target> </configuration> </plugin> <!--单元测试插件--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.12.4</version> <configuration> <skipTests>true</skipTests> </configuration> </plugin> </plugins> </build> </project>
2. 新建公共类 ihrm_common
引入坐标
<?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> <parent> <groupId>org.example</groupId> <artifactId>java_hrm</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>ihrm_common</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.example</groupId> <artifactId>java_hrm</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> </project>
3. 新建实体类 ihrm_common_model
引入坐标
<?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> <parent> <groupId>org.example</groupId> <artifactId>java_hrm</artifactId> <version>1.0-SNAPSHOT</version> </parent> <artifactId>ihrm_common_model</artifactId> <properties> <maven.compiler.source>8</maven.compiler.source> <maven.compiler.target>8</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <!-- 这是对父级的依赖 --> <groupId>org.example</groupId> <artifactId>java_hrm</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> </project>
4. 简化引入实体类写入 get set 方法
使用插件 lombok
公司实体类案列:
package com.ihrm.domain.company; import lombok.Getter; import lombok.Setter; // 引入了注解 import java.io.PrintStream; import static java.lang.System.*; // 每次都写 get set 太麻烦了 怎么办 ? 使用 lombok插件 目的:使用注解的形式替换 get set 构造方法 //如何使用: // 1. 安装插件 【工程中引入插件的坐标即可-在父工程中】 2. 使用注解配置 //<dependency> //<groupId>org.projectlombok</groupId> //<artifactId>lombok</artifactId> //<version>1.16.16</version> //</dependency> @Setter @Getter public class Company { private String id; private String name; // alt + ins 快捷键 快速写入get set 方法 不推荐了 使用插件开苏写入 // psvm 入口函数 public static void main(String[] args) { PrintStream PrintStreamout = new PrintStream(out); // 新建打印流类 Company company = new Company(); company.setName("朱龙旭"); // 修改了name值 out.print("company.name"); out.print(company.name); } }