关于springboot:常用项目设计

1 罕用我的项目设计框架


1.1 用户在拜访服务器时因为并发量比拟大,通常应用多台服务器来解决高拜访的问题。而域名、端口等对立且惟一,用户不可能在输出网址时一直的批改,因而用对立的代理服务器作为惟一的入口,再进行调配。

1.2 数据库端同样为缩小访问量,削减了缓存服务器。以及主从数据库,外面数据完全相同。一旦主机呈现的故障,会依据特定算法主动切换到从机上。

2 项目表设计

2.1 表与表之间的关系

2.1.1 一对一


一个商品对应一个商品形容,一个商品形容对应一个商品。
通常将一个表中的主键充当另一个表中的外键。(pk–主键,fk–外键)

2.1.2 一对多


一个商品分类中对应多个商品,但一个商品却只属于一个商品分类。(当以某个对象为主体时,则以此对象为参考点。在以商品为参考点时,此时曾经选中了这个商品,即有且只有一个,只对应一个商品分类。)

2.1.3 多对多


一个角色对应多个权限,一个权限对应多个角色。(多对多并不是指多个对象对多个对象,而是咱们在选取这个对象时,这个对象曾经被确定下来了,有且只有一个。这个‘多’示意其余对象与它的关系。)

2.2 导入数据库

导入指令; source 门路/xxx.sql

(‘/’和’\’ 都一样,在导入时能够先找到sql文件,先输出指令 source+空格 而后将文件间接拉入,再回车即可,也可通过其余工具导入。)

2.3 IDEA配置环境

2.3.1 JDK配置

2.3.1.1 输出变量名,并找到对应的JDK装置根目录

3.3.1.2 在path上新建该变量

3.3.1.3 检测JDK装置是否胜利

输出指令:java -version

2.3.2 IDEA罕用配置

2.3.2.1 装置Lombok插件

2.3.2.2 设置习惯的快捷键

2.3.2.3 批改鼠标缩放

2.3.2.4 智能提醒

2.3.2.5 构建我的项目

2.3.2.6 配置maven

2.3.2.7 配置主动保留

2.3.2.8 批改主动提醒

2.3.2.9 设置编码

2.3.3 设置背景色彩

3 SpringBoot高级利用

3.1 创立SpringBoot我的项目




3.2 对于Maven阐明

Maven是一站式的项目管理工具,能够创立我的项目、治理我的项目、我的项目打包、依赖、公布等。

3.2.1 对于Maven坐标的阐明

Maven中有很多其余机构的开源jar包文件,通过坐标模式进行对立的治理。

        <dependency>
            <groupId>org.springframework.boot  公司域名倒写</groupId>
            <artifactId>spring-boot-starter-web 项目名称</artifactId>
            <version>XX  版本号</version>
        </dependency>

jar包地位:
C:\The_four_step\maven\rep\org\springframework\boot\spring-boot-starter-web\2.4.1

3.3.2 对于maven中jar包依赖的传递性

在maven我的项目中如果A依赖B,B依赖C,当程序增加依赖A时,则同样也增加了B,C依赖文件。

maven依赖的原理:

1 当用户增加了jar包文件时,maven会依据jar包门路查问jar包文件
2 当加载完jar包后,会持续解析该目录下的本身带有的pom文件,如果pom文件中蕴含jar包时,就会持续加载。

3.3.3 maven工具如何实现jar包平安传递

当jar包实现下载时,本地库中的jar文件数据会进行散列算法,而后与地方仓库中的计算得出的散列值比拟是否相等,以此来保证数据统一。

SHA-1(英语:Secure Hash Algorithm 1,中文名:平安散列算法1)是一种明码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)公布为联邦数据处理规范(FIPS)。SHA-1能够生成一个被称为音讯摘要的160位(20字节)散列值,散列值通常的出现模式为40个十六进制数

常识:
1.如果数据雷同,问: hash值是否雷同? 值是雷同的.
2.问 一个数据10K,一个数据1G 问 运算速度如何? 一样快(约等于)

数据传递的流程:

3.4 SpringBoot POM.xml文件

3.4.1 maven在idea中展现的名称

该名称默认为我的项目名。

3.4.2 maven打包形式



1 个别我的项目须要打包时,会先执行clean指令,示意革除 缓存,革除一些不须要但还存在在缓存中的数据。
2 而后再compile 从新编译。
3 install 我的项目打包

打包后,会呈现一个打包的jar包文件,即是咱们须要的打包文件;如果没有呈现,刷新下。

3.4.3 jar包文件运行测试

命令:java -jar 打包文件(xxx.jar)

测试的时候能够在文件目录下运行cmd
命令: ctr+c 示意退出

3.5 SpringBoot POM.xml文件-2


3.6 SpringBoot启动流程


但我的项目启动时,会找到main入口,对@SpringBootApplication注解进行解析。

ctr+鼠标右键 点击此注解

3.6.1 元注解阐明

此类注解为元注解,用来润饰注解的注解
@Target(ElementType.TYPE) 限定注解的作用范畴(类外面无效)
@Retention(RetentionPolicy.RUNTIME) 注解的生命周期,示意在运行期无效
@Documented 应该被javadoc记录,动静生成文档信息
@Inherited 示意类、子类能够被继承

3.6.2 排除过滤器启动

@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
 @Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
   /**
 * Exclude specific auto-configuration classes such that they will never be applied. * @return the classes to exclude
 */ @AliasFor(annotation = EnableAutoConfiguration.class)
   Class<?>[] exclude() default {};...

因为spring boot启动时须要加载的很多,在这里通过过滤器排除哪些不须要加载的,即是须要加载的了。(eg:求一个汇合时,能够对其求补集再取反)

3.6.3 SpringBootConfiguration中的注解


通过注解得悉:主启动类自身也是一个配置类

3.6.4 @EnableAutoConfiguaration

1 @AutoConfigurationPackage: 限定了spingBoot启动时包扫描的门路,只有在启动类的同包及其子包下才会被扫描到。
2 @Import(AutoConfigurationImportSelector.class)
该注解次要示意当程序启动时,springBoot外部会有多个选择器顺次启动。选择器启动时会去加载指定的jar包文件。这时springBoot的开箱即用的作用才正式起作用。

【腾讯云】轻量 2核2G4M,首年65元

阿里云限时活动-云数据库 RDS MySQL  1核2G配置 1.88/月 速抢

本文由乐趣区整理发布,转载请注明出处,谢谢。

您可能还喜欢...

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据