centos7无法连接wifi
今天在联想笔记本安装centos7,安装完成后无法连接wifi,最后发现是联想电脑的问题,以下为解决方法:
解决方法:把影响无线wifi开关的ideapad_laptop加入黑名单sudo vi /etc/modprobe.d/ideapad.conf
文件内容:blacklist ideapad_laptop
#保存并关闭后再执行
sudo modprobe -r ideapad_laptop
#重启之后,wifi就可以使用了。
# 查询内核日志,查看是否需要安装无线网卡的固件
dmesg | grep firmware
# 正常:iwlwifi loaded firmware version ....
# 错误:IOCSIFFLAGS: No such file or directory,此时需要安装固件
# 错误:firmware: requesting iwlwifi-5000-1.ucode
# 安装firmware,需要查看网卡型号,先安装工具
yum -y install pciutils*
# 查看无线网卡型号
lspci
# Ethernet control ...
node.js
node知识点
console
__dirname 当前文件所在的目录。
__filename 文件的全路径。
eventLoop
宏任务、微任务
//宏任务 主体script setTimeout setInterval (new Promise)
//微任务 Promise.then process.nextTick()
setTimeout(()=>{
//宏任务
new Promise(resolve =>{
console.log("promise")
resolve()
}).then(()=>{
//微任务
console.log("then")
})
//宏任务
console.log(1)
//宏任务
setTimeout(()=>{
console.log(222)
})
})
模块化(commonjs规范)
...
es6
数据类型
Number、Boolean、String、Symbol、Null、Undefined、Object
Symbol:es6新增数据类型-基本类型,值是由Symbol函数调用产生的
作用域
let、const
解构赋值
数组解构
let [a,b,c] = [1,2,3]
对象解构
let {foo,bar} = {foo:”aaa”,bar:”bbb”};//左侧变量的名称解构顺序无关
let {foo:f,bar:b} = {foo:”aaa”,bar:”bbb”};//取别名
let {foo:[a,b]} = {foo:[10,20],bar:”bbb”}//多重解构
扩展运算符 …
把数组、对象转成参数序列。
var arr = [1,7,3,6,5];
var arr2 = [‘a’,’b’,’c’];
Math.max(…arr);
var arr3 = […arr,…arr2];
模板字符串(保持格式、表达式解 ...
tomcat源码--启动脚本
startup.bat@echo off
rem Licensed to the Apache Software Foundation (ASF) under one or more
rem contributor license agreements. See the NOTICE file distributed with
rem this work for additional information regarding copyright ownership.
rem The ASF licenses this file to You under the Apache License, Version 2.0
rem (the "License"); you may not use this file except in compliance with
rem the License. You may obtain a copy of the License at
rem
rem http://www.apache.org ...
javaweb获取类路径下资源
项目结构:
类路径:指的是编译后的class文件的位置,如果是IDEA的话,一般在\项目名\out\artifacts\项目扩展名WEB-INF\classes\a.txt
编译后文件路径
获取类路径下资源的方式
ClassLoader
@Controller
public class PathController {
@RequestMapping("/path")
public void testPath() throws IOException {
//如果资源文件不是直接在src下,而是在其他包下面,要改成 getResourceAsStream("com/haominglfs/test/a.txt") 开头没有斜杠
InputStream resourceAsStream =
this.getClass().getClassLoader().getResourceAsStream("a.txt");
BufferedReader ...
spring注解
@Configuration
告诉spring这是一个配置类(配置类==配置文件)
@Bean
给容器中注册一个bean;类型为返回值的类型;id默认用方法名作为id;
@ComponentScan(value=”要扫描的包”)
包扫描注解
@Scope
调整组件的作用域(默认是单实例)
@Lazy
懒加载(默认单实例bean在容器创建的时候创建)
@Conditional({Condition})
按照一定的条件进行判断,满足条件给容器中注册bean;
Condition实现Condition接口,实现matches方法;
放在类上,统一设置。
@Import,给容器中注册组件方式:
包扫描+组件标注注解(@Controller/@Service/@Repository/@Component)[自己写的类]
@Bean[导入的第三方包里面的组件]
@Import[快速给容器中导入一个组件];
@Import(要导入容器中的组件),容器中就会自动注册这个组件,id默认是全类名。
实现ImportSelect ...
mongodb使用
db.students.find({age:20,name:'sss'})
db.students.find({age:20})
db.students.findOne({age:20}).name
db.students.find()
db.students.insertOne({name:"mmm",age:20})
db.students.find({age:20}).count()
db.students.find({age:20}).length()
db.students.update({name:"hm"},{age:28})
//默认情况只会修改一个
db.students.update({"_id" : ObjectId("5c17c5836ff3da5ffa6da9f7")},{$set:{name:'hm',gender:"男",address:"石家 ...
hibernate-HQL查询
Hibernate提供了以下几种检索对象的方式:
导航对象图检索方式: 根据已经加载的对象导航到其他对象。
OID 检索方式: 按照对象的OID来检索对象。
HQL 检索方式: 使用面向对象的 HQL 查询语言。
QBC 检索方式: 使用QBC(QueryBy Criteria) API 来检索对象. 这种API封装了基于字符串形式的查询语句,提供了更加面向对象的查询接口。
本地SQL检索方式:使用本地数据库的SQL查询语句。
HQL(HibernateQuery Language) 是面向对象的查询语言, 它和SQL查询语言有些相似.在Hibernate提供的各种检索方式中,HQL 是使用最广的一种检索方式.它有如下功能:
在查询语句中设定各种查询条件。
支持投影查询,即仅检索出对象的部分属性。
支持分页查询。
支持连接查询。
支持分组查询,允许使用HAVING和GROUPBY 关键字。
提供内置聚集函数,如sum(),min() 和 max()。
支持子查询。
支持动态绑定参数。
能够调用用户定义的 SQL 函数或标准的SQL函数。
HQL检索方式包括以 ...
hibernate的session管理方式
Hibernate 自身提供了三种管理 Session对象的方法:
Session 对象的生命周期与本地线程绑定。
–Session对象的生命周期与JTA事务绑定。
–Hibernate委托程序管理Session对象的生命周期。
在Hibernate的配置文件中,hibernate.current_session_context_class属性用于指定Session管理方式,可选值包括:
thread:Session 对象的生命周期与本地线程绑定。
jta:Session 对象的生命周期与 JTA 事务绑定。
managed:Hibernate 委托程序来管理 Session对象的生命周期。
配置与使用
<!-- 配置管理 Session 的方式 -->
<property name="current_session_context_class">thread</property>
public class HibernateUtils {
private HibernateUtils(){}
private ...
hibernate缓存
缓存级别
第一级别的缓存是Session级别的缓存,它是属于事务范围的缓存。这一级别的缓存由hibernate管理的。
第二级别的缓存是SessionFactory级别的缓存,它是属于进程范围的缓存,sessionFactory级别的缓存分为两类:
内置缓存: Hibernate 自带的, 不可卸载.通常在Hibernate的初始化阶段,Hibernate 会把映射元数据和预定义的 SQL语句放到SessionFactory的缓存中,映射元数据是映射文件中数据(.hbm.xml文件中的数据)的复制.该内置缓存是只读的。
外置缓存(二级缓存):一个可配置的缓存插件.在默认情况下,SessionFactory不会启用这个缓存插件.外置缓存中的数据是数据库数据的复制,外置缓存的物理介质可以是内存或硬盘。
二级缓存的适用场景
适合放入二级缓存中的数据:
很少被修改
不是很重要的数据,允许出现偶尔的并发问题
不适合放入二级缓存中的数据:
经常被修改
财务数据,绝对不允许出现并发问题
与其他应用程序共享的数据
管理二级缓存,二级缓存是可配置的的插件,Hibernate ...
kotlin
空类型任意类型都有可空和不可空两种
val notNull:String = null //错误,不能为空
val nullable:String? = null //正确,可以为空
notNull.length //正确,不为空的值可以直接使用
Nullable.length //错误,可能为空,不能直接获取长度
Nullable!!.length //正确,强制认定nullable不可空
Nullable?.length //正确,若nullable为空,返回空
智能类型转换
java style 类型转换
val sub:subClass = parent as subClass
类似于java的类型转换,失败则抛出异常
安全类型转换
val sub :subClass = parent as? subClass
如果转换失败,返回null,不抛出异常
Lamdba表达式
写法:{[参数列表] -> [ ...
jpa
persistence.xml
JPA规范要求在类路径的META-INF目录下放置persistence.xml,文件的名称是固定的。
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<!-- 1.name 属性用于定义持久化单元的名字, 必选
2.transaction-type:指定 JPA 的事务处理策略。
RESOURCE_LOCAL:默认值,数据库级别的事务,只能针对一种数据库,不支持分布式事务。
如果需 ...