零散知识点小结(nginx/linux/mycat/redis/douubo/zookeeper)

maven中jar包传输原则(了解)

问题:jar包文件 如何保证在远程传输的过程中不被别人篡改???
算法介绍: SHA1算法

SHA-1(英语:Secure Hash Algorithm 1,中文名:安全散列算法1)是一种密码散列函数,美国国家安全局设计,并由美国国家标准技术研究所(NIST)发布为联邦数据处理标准(FIPS)。SHA-1可以生成一个被称为消息摘要的160位(20字节)散列值,散列值通常的呈现形式为40个十六进制数。
在这里插入图片描述

配置文件写法

1.YML文件写法 层级关系 空格 连接符:号 注意缩进.
2.pro文件 本身都是字符串不需要添加""号 注意字符集编码iso-8859-1 转化为utf-8 重新编辑.

为属性赋值

目的:动态配置属性信息.
两种方式:
取值前提: 先赋值,再取值
1.@value spel表达式
2@ConfigurationProperties(prefix = “msg”) 一般配合@data注解.
指定配置文件进行加载. @PropertySource(“classpath:/xxxxxxxx.properties”)

@PropertySource
(value = "classpath:/properties/msg.properties",
		encoding="UTF-8")
	/**
	 * 1.之前通过yml配置文件赋值
	 * 2.现在通过pro文件方式赋值
	 */
	
	@Value("${msg.username2}")

环境切换

通过—实现配置文件分割
spring.profiles: prod 定义环境名称
spring.profiles.active: prod 指定默认的环境 注意缩进!!!

lombok环境插件配置

面试题:
lombok:可以自动的生成get/set等方法.但是使用lombok时需要安装插件!!!
问题:如果要在Linux系统中运行java项目.是否需要安装lombok插件??? 不需要!!!
答: lombok在程序编译期有效,当程序由.java文件编译为.class文件时,
lombok插件开始工作.动态生成了get/set等方法.
而Linux中运行的项目直接.jar包文件里边包含了.class类型文件.
所以不需要lombok插件再次编译即可运行.

关于配置文件说明:

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/jtdb?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true
    username: root
    password: root

serverTimezone=GMT%2B8 东8区
useUnicode=true&characterEncoding=utf8 使用指定的字符集编码
&autoReconnect=true 数据库连接断开之后,是否自动重连
&allowMultiQueries=true 是否允许批量操作sql语句. 一般查询居多 允许

开启驼峰映射

mybatis:
  configuration:
    map-underscore-to-camel-case: true

关于驼峰映射说明:
字段信息:
user_id , user_age , user_name
对象属性:
userId , userAge ,userName
如果需要实现属性与字段的映射,则必须开启驼峰规则.
字段信息~~~~ user_id ~~~~ 去掉_线 ~~~~之后首字母大写 ~~~~ userId
改名字可以与对象的属性映射.
注意事项: 如果一旦开启驼峰规则映射,则必须按照要求执行.
字段:user_id 不能映射 属性:user_id

MybatisPlus 介绍

MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,
在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

MybatisPlus实现原理

核心:

  1. 表与对象建立关联关系
    对象名称 ---------> 表名
    对象的属性 -------> 数据表中的字段.
  2. 采用第三方接口 规范所有的单表操作规则.(封装思想)
  3. 将CURD接口方法,必须按照sql的规范转化为指定的sql语句.

理论依据:

userMapper.insert(user); //程序员只写到这里.
sql: insert into 表名(字段名…) values (属性值…);
按照用户的调用发方法,动态拼接sql.之后交给Mybatis去执行.
拼接sql:
insert into user表(字段A,字段B,字段C…) values (属性值A,属性B,属性C…);

@Data
@Accessors(chain = true)
@TableName   //与表进行关联  如果名称一致,则可以省略不写.
public class User {
   
	//属性一般都与表字段对应
	@TableId(type = IdType.AUTO)	//主键自增标识.
	private Integer id;
	//@TableField(value = "name")	//如果属性名称与字段名称一致(包含驼峰规则) 可以省略不写
	private String name;
	private Integer age;
	private String sex;
}

!!!继承BaseMapper接口!!!

public interface UserMapper extends BaseMapper<User> {
   	
	
}

queryWrapper:条件构造器 拼接where条件
逻辑运算符 = eq, > gt , < lt, >= ge, <= le
案例:查询用户age<18岁或者age>100岁

QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
		queryWrapper.lt("age", 18)
		.or()
		.gt("age", 100);
		List<User> userList = userMapper.selectList(queryWrapper);
//queryWrapper.between("字段", "值1", "值2");
		//queryWrapper.like("name", "精");//包含精字 %精%
queryWrapper.likeRight("name", "精");//以精开头 精% 左右是指%的位置
		//queryWrapper.groupBy(column) //分组查询!!!

SpringBoot 整合JSP

1.添加jsp页面(将页面资料导入webapp中)
2.添加jsp相关jar包文件
3.配置视图解析器

spring:
  mvc:         #引入mvn配置
    view:
      prefix: /WEB-INF/     # /默认代表根目录 src/main/webapp
      suffix: .jsp

ajax原理

AJAX特点: 局部刷新,异步访问.
知识点: ajax为什么可以异步 源于ajax调用方式.(ajax引擎)

jQuery中发起ajax请求

1. $.get()  负责查询  		    返回数据任意  人工解析
2. $.post() 表单数据提交等           返回值类型任意 人工解析 
3. $.getJSON() 查询获取json数据
4. $.getScript()  获取js代码片段
5. $.ajax({.....})  万能用法 

常规ajax写法

$.ajax({
   
		type: "post",			//method
		url: "/findAjax",		//网址
		//data: "name=John&location=Boston",  //传递数据
		dataType: "json",
		success: function(result){
   
			//准备一个函数,实现表格数据的添加.	
		    	addTable("tab2",result);
			//提示成功信息
			   },
		error :function(data){
   
				alert("提示信息: 当前网络正忙,请稍后再试");
			   },
		async : true,    //默认条件下都是异步.    false表示请求同步.
		cache : false	//缓存页面信息          false表示不缓存
			   
		});

分布式思想

!!!为什么分布式!!!

说明: 由于程序将所有的功能模块放到同一台tomcat服务器中,那么如果服务器内部出现了问题,
则直接导致整个服务器不能正常执行. 系统架构的耦合性高

分布式系统

核心理念: 按照指定的规则,将系统进行拆分.各自独立运行,减少架构的耦合性.
按照模块拆分
优点: 如果其中一个服务器出现了问题,则不会影响整个项目的正常运行.
按照层级拆分
说明:有时代码的业务逻辑特别的复杂.如何减少开发的耦合性.可以按照层级的方式进行拆分.
关于分布式总结
优点: 可以将大型项目按照指定规则拆分.降低了系统架构的耦合性.方便开发和"维护".
弊端: 拆分完成之后由于项目个数重点 运维不易. 可以接受!!!
分布式另外表现形式: 准备多台服务器一起为用户提供服务.

集群

什么是集群
说明:采用多台服务器部署项目,共同为用户提供服务的.同时可以满足高可用(HA)的需求时,称之为集群.
什么是高可用: 当服务器发生宕机的现象时,可以自动的实现故障迁移.保证服务运算能力.

如何管理JAR包

问题说明: 由于分布式的项目构建,导致服务器中jar包维护的份数变多.如果长时间按照该方式运行,则必然导致jar包管理混乱.
解决方案: 准备一个公共的项目,由该项目管理所需要的jar包文件. 其它项目继承该项目即可.
在这里插入图片描述

如何管理工具API

在这里插入图片描述

项目划分

1.父级工程 jt 项目打包类型: pom
2.工具API jt-common 打包类型:jar
3.业务系统 jt-manage 打包类型:war

EasyUI树形结构

	<body class="easyui-layout">

	<div data-options="region:'west',title:'菜单',split:true"
		style="width: 10%;">

		<ul class="easyui-tree">
			<li>
				<!--一级标题元素  -->
				<span>商品管理</span>
				<ul>
					<li>商品查询</li>
					<li>商品新增</li>
				</ul>
			</li>
			<li>
				<span>人员管理</span>
				<ul>
					<li>保安</li>
					<li>员工</li>
				</ul>
			</li>
		</ul>

	</div>
	<div data-options="region:'center',title:'首页'"></div>

</body>	


EasyUI选项卡技术

	<link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.4.1/themes/default/easyui.css" />
<link rel="stylesheet" type="text/css" href="/js/jquery-easyui-1.4.1/themes/icon.css" />
<link rel="stylesheet" type="text/css" href="/css/jt.css" />
<script type="text/javascript" src="/js/jquery-easyui-1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="/js/jquery-easyui-1.4.1/jquery.easyui.min.js"></script>
<script type="text/javascript" src="/js/jquery-easyui-1.4.1/locale/easyui-lang-zh_CN.js"></script>
</head>
<body class="easyui-layout">

  <div data-options="region:'west',title:'菜单',split:true" style="width:10%;">
   		<ul class="easyui-tree">
   			<li>
   			<span>商品管理</span>
   			<ul>
   			<li><a onclick="addTab('商品新增','/item-add')">商品新增</a></li>
   			<li><a onclick="addTab('商品查询','/item-list')">商品查询</a></li>
   			<li><a onclick="addTab('商品更新','/item-update')">商品更新</a></li>
   			</ul>
			</li>
			
			<li>
   			<span>网站内容管理</span>
   			<ul>
   			<li>内容新增</li>
   			<li>内容修改</li>
   			</ul>
			</li>
   		
   		</ul>
   </div>
   <div id="tt" class="easyui-tabs" data-options="region:'center',title:'首页'"></div>


</body>
<script type="text/javascript">

//addTab('商品新增','/item-add')
function addTab(title, url){
     
	//框架自己提供的函数方法.tabs
    if ($('#tt').tabs('exists', title)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值