说明:做后端开发,对于表结构应该特别的熟悉。但是常规的数据库软件,不能做到非常直观的展现表与表的关联关系。导致程序员开发频繁的查询数据库字典(包含了项目中所有的表设计)
**
**PowerDesigner最初由Xiao-Yun Wang(王晓昀)在SDP Technologies公司开发完成。PowerDesigner是Sybase的企业建模和设计解决方案,采用模型驱动方法,将业务与IT结合起来,可帮助部署有效的企业体系架构,并为研发生命周期管理提供强大的分析与设计技术。PowerDesigner独具匠心地将多种标准数据建模技术(UML、业务流程建模以及市场领先的数据建模)集成一体,并与 .NET、WorkSpace、PowerBuilder、Java™、Eclipse 等主流开发平台集成起来,从而为传统的软件开发周期管理提供业务分析和规范的数据库设计解决方案。此外,它支持60多种关系数据库管理系统(RDBMS)/版本。PowerDesigner运行在Microsoft Windows平台上,并提供了Eclipse插件。
总结:PD是数据库设计业务分析的一站式的解决方案.
Maven 是一站式的项目管理工具. 负责管理项目的生命周期 创建/更新/维护/打包/部署
核心机制: 本地仓库 私服镜像 中央仓库
1.导入maven配置
2.导入settings文件
3.settings文件私服镜像配置
```java
连接的阿里云的服务器仓库
<mirror>
<id>aliyun</id>
<name>aliyun for maven</name>
<mirrorOf>*</mirrorOf>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>
1.8
</maven.compiler.compilerVersion>
</properties>
</profile>
4.settings文件私服镜像配置2(二选一)
连接的阿里云私服镜像服务器
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
说明: maven中 如果 A----->B-------->C 那么在项目中引入A包,就可以自动的引入BC!!!如何实现的???
Maven工具解析原理:
1). 用户通过dependency标签依赖jar包时,maven工具会通过坐标去本地仓库中查找改jar包文件.
2). maven查找jar包文件之后,解析当前jar包的POM.xml文件,引入相关依赖.
问题:jar包文件 如何保证在远程传输的过程中不被别人篡改???
算法介绍: SHA1算法
SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
1.pom.xml文件的说明
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<!--maven坐标 将来通过坐标唯一定位项目文件的位置 -->
<groupId>com.jt</groupId>
<artifactId>springboot_demo1</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>springboot_demo1</name>
<description>Demo project for Spring Boot</description>
<!--parent标签作用:管理所有被springBoot整合之后的jar包的版本定义 springBoot特点: 开箱即用 引入jar包就可以添加相对应的功能.
定义了当前springBoot2.3.1所有的相关依赖的版本号信息. -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.1.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<properties>
<java.version>1.8</java.version>
</properties>
<dependencies>
<!--在webjar包的内部关联整合了所有的springMVC的jar包信息. 所以只需要引入一个jar包,则可以关联整合所有的有关mvc的依赖包信息 -->
<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>
<exclusions>
<exclusion>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
</exclusion>
</exclusions>
</dependency>
</dependencies>
<!--负责项目打包 更新 maven操作相关的配置 必须添加 -->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
说明: SpringBoot程序启动时 默认加载application.yml文件.
# 语法: 1. key-value结构 2.key和value之间使用:(空格)进行分割
# 2.YML配置文件有层级结构
server:
port: 8090
servlet:
context-path: / #项目发布路径信息 默认条件下 /根目录
# tomcat服务器进行发布 默认发布路径地址webapps目录下
# / ROOT 项目路径
# /jt JT 项目路径
说明: 通过图中可以发现,用户的数据被写死.如果后续需要修改数据,则必须修改代码.属性的耦合性高.不方便维护.
解决方案: 能否利用配置文件动态的为属性赋值.
.2.1编辑YML配置文件
# 语法: 1. key-value结构 2.key和value之间使用:(空格)进行分割
# 2.YML配置文件有层级结构
server:
port: 8090
servlet:
context-path: / #项目发布路径信息 默认条件下 /根目录
# tomcat服务器进行发布 默认发布路径地址webapps目录下
# / ROOT 项目路径
# /jt JT 项目路径
#指定用户配置文件信息
msg:
username: 许三多
age: 10
2.2利用注解取值
@RestController
public class MsgController {
//有时可能会通过配置文件的形式为属性动态的赋值.
/**
* @Value 表示从spring容器中动态获取数据.
* 通过spel表达式动态取值
*/
@Value("${msg.username}")
private String username; //用户名
@Value("${msg.age}")
private Integer age; //年龄
@RequestMapping("/getMsg")
public String getMsg() {
return "返回值结果:"+username+":"+age;
}
}
说明:当程序代码修改之后,tomcat服务器可以自动的部署
<!--支持热部署 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
</dependency>
开发程序时,可能会在生成环境下和测试环境中不停地切换. 如果频繁的修改YML配置文件,则可能导致错误.
可以使用YML中环境切换解决该问题.
环境配置的要求: 环境中配置的内容必须"一致的"
# 语法: 1. key-value结构 2.key和value之间使用:(空格)进行分割
# 2.YML配置文件有层级结构
#指定默认的环境策略
spring:
profiles:
active: test
---
spring:
profiles: prod
server:
port: 8090
servlet:
context-path: / #项目发布路径信息 默认条件下 /根目录
# tomcat服务器进行发布 默认发布路径地址webapps目录下
# / ROOT 项目路径
# /jt JT 项目路径
#指定用户配置文件信息
msg:
username: 许三多
age: 10
--- #表示配置文件环境的分割
spring:
profiles: test
server:
port: 8080
servlet:
context-path: /test #项目发布路径信息 默认条件下 /根目录
msg:
username: 许三多
age: 10
<!--引入插件lombok 自动的set/get/构造方法插件 -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
.YML文件写法 层级关系 空格 连接符:号 注意缩进.
.pro文件 本身都是字符串不需要添加""号 注意字符集编码iso-8859-1 转化为utf-8 重新编辑.
目的:动态配置属性信息.
方式2:
取值前提: 先赋值,再取值
1.@value spel表达式
2@ConfigurationProperties(prefix = “msg”) 一般配合@data注解.
指定配置文件进行加载. @PropertySource(“classpath:/xxxxxxxx.properties”)
通过—实现配置文件分割
spring.profiles: prod 定义环境名称
spring.profiles.active: prod 指定默认的环境 注意缩进!!!
面试题:
lombok:可以自动的生成get/set等方法.但是使用lombok时需要安装插件!!!
问题:如果要在Linux系统中运行java项目.是否需要安装lombok插件??? 不需要!!!
答: lombok在程序编译期有效,当程序由.java文件编译为.class文件时,lombok插件开始工作.动态生成了get/set等方法. 而Linux中运行的项目直接.jar包文件里边包含了.class类型文件.所以不需要lombok插件再次编译即可运行.