SpringBoot期末知识点大全

一、学什么
IoC
AOP:面向切面编程。 
事物处理
整合MyBatis
Spring框架思想!
二、核心概念
问题:类之间互相调用/实现,导致代码耦合度高。
解决:使用对象时,程序中不主动new对象,转换为由外部提供对象。
思想:ioc(inversion of control) 控制反转,对象的 创建控制权由程序 转移到 外部
做法:spring提供了 ioc容器,充当思想中的 外部 负责对象的创建、初始化,被创建的对象在容器中称为 Bean。
思想:DI(dependence injection) 依赖注入。在容器中 建立bean与bean之间的依赖关系的整个过程。
目标:充分解耦。使用ioc容器管理bean,在ioc容器内将有依赖关系的bean进行关系绑定。
三、ioc入门思路
1.管理什么?    Service与Dao。
2.如何将被管理的对象告诉ioc容器?    配置文件。
3.如何将对象交给ioc容器?    接口。
4.如何从容器中获取bean?    接口方法。
5.使用spring导入哪些坐标?    pom.xml。     
· 先在xml导入spring坐标spring-context。
· 在resources创建配置文件。
· 配置bean:<bean id="" class=""/>
· 获取ioc容器:applicationcontext ctx = new classpathxmlapplicationcontext("之前创建的配置文件")
获取bean:对象类 对象名 = ctx.getbean("配置bean的id")
四、DI入门思路
· 把new对象的部分删除,只保留定义部分。
· 提供对应的set方法。(给容器执行)
· 配置 依赖关系。在bean的配置内。
<bean>< property name="对象定义的属性名(在这里定义的对象看作是一个 属性)" ref="对象在bean配置中的id"/><bean/> 
五、bean配置
1.别名配置
<bean id="" name="别名1 别名2" class="">
id和name是同等意思。
2.bean的作用范围
bean默认是单例对象,即一个类的多个对象是一个地址。每个对象只用造一次,但是可以多次使用。可以用 scope在bean中配置为 非单例

六、bean的实例化方式    1 3最常用
1.spring创建bean调用它的 无参构造方法。使用bean的普通配置。
2.用静态工厂类的方法(static)创建对象。bean的配置为:<bean id="" factory-method=" 工厂方法" class=" 工厂类"/>
3.实例工厂

七、bean的生命周期控制 
创建后到销毁前做一些事情。
1.bean配置中新增属性:init-method="方法名", destory-method="方法名"
2.bean对应的类实现接口initializingbean, disposablebean.重写方法。

八、依赖注入方式
1.setter注入    最常用
给要创建bean的类的属性/依赖的bean赋值。
先给属性提供set方法
再配置<property name="" ref/value="ref赋值引用数据类型,value赋值简单类型">
2.构造器注入
先生成对属性的构造方法
再bean中配置<constructor-arg name="构造方法的形参名"/index=""/type="" ref="bean id"/>

九、依赖自动装配
ioc容器根据bean所依赖的资源在 容器中自动查找并注入到bean中。
方式:
1.按类型:!!
<bean id="" class="" autowire="byType"/>
2.按名称
<bean id="" class="" autowire="byName"/>

十、纯注解开发!

原来的配置文件不用了。新建一个config.springconfig文件,添加@configuration, @componentScan("要扫描的包",如有多个包在大括号内添加)包内的类只要加了相应注解的,都会被加载为bean。

应用程序中获取容器的方法要改,applicationcontext ctx = new annotationconfigapplicationcontext(新配置类 ***.class)

类名 对象名 = ctx.getbean(类.class)

在要创建bean的类上,添加注解。用于给配置类去扫描。

十一、注解开发bean的作用范围和生命周期控制

类加注解:@scope("prototype")

。。控制不用再实现接口,直接自己写方法,但是加注解:

@postconstruct 代表是创建之后执行。

@predestroy 代表销毁前执行。

并且应用程序要改为

anotationconfigapplicationcontext ctx = new annotationconfigapplicationcontext(新配置类 ***.class)

才能调用生命周期方法ctx.close() ctx.init()

十二、注解开发依赖注入:自动装配

引用类型注入:

连set方法都不用了,加注解@Autowired。!

当使用@autowired注解时,你不需要再去写getter和setter方法了。

 没啥用

简单类型注入:@value

用property文件内的值注入

总结注解开发:

一、AOP面向切面编程思想

在不改变原始设计的基础上进行功能增强。

将程序的共性功能抽取,在通知类中定义通知方法,方法里写共性功能。

将需要执行通知的方法,定义为切入点。而连接点是所有方法。切面表示在哪个切入点执行哪个通知。

切入点一定在连接点中。

二、AOP入门

1.pom.xml坐标导入

2.springconfig配置文件

加入@enableaspectjautoproxy。其他接口和实现类不变。

3.

4.

5.

6.

三、AOP工作流程

切入点表达式:

四、AOP通知类型

1.@before("pt()")

2.@after("pt()")

3.@around("pt()")

切入点无返回值:

切入点有返回值:

  

AOP获取数据没听。

spring事务

spring事务角色

Datasource

SpringMVC

1.

, 实现了Model,View和Controller之间的职责解耦

比servlet简单快捷。

2.入门

  

Controler负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。

创建配置文件 加载控制类bean。只管理controller包的bean。

加载springmvc环境。

加载spring容器配置和springmvc的写法一样。

3.总结

4.流程

单次请求过程!!!

5.spring加载的bean和springmvc加载bean如何分开管理呢

· 一个是用大括号,把要扫描的包写详细。!!!

· 用filter写明要过滤的部分。

总结

6.postman

7.请求映射路径

在类上加@requestmapping。

8.get与post请求

· get

问号后写参数,用&连接。

参数在形参内接收。

· post 表单传参

请求体。

配置文件加

9.响应

跳转页面,没加responsebody

返回字符串  默认情况

返回json对象

返回json集合

10.REST风格 不是规范

路径名写成模块名的复数。

删除的写法,id写在路径后面,方法里要加@注释。

其他的写法要去改访问路径,再写method。

json和路径比较常用。

11.简化 以后用这个写

· @requestmapping和@responsebody直接 抽取到类上方。
· 同时@controller和@responsebody可以合并为 @restcontroller。
· requestmapping里的method简化为: 

12.整体思路
· 定义配置类等等
· 定义MVC的controller类,写好类上的注释,如restcontroller,requestmapping,responsebody等。
· 定义MVC里的操作,在方法上加REST风格对应路径。
· 在前端界面中,发起相应的请求,请求路径写为MVC中相应controller类的路径。mvc会根据请求类型和请求路径找到对应的操作。
整合Mybatis
0.导入坐标

1.程序入口

数据源

2. 配置类 !!

3.程序入口
从容器中获取Dao层的操作,调用方法。
SSM
1.      

就是先建数据库,定义实体类 类里面包含表的属性和getset方法。
再定义dao层接口和实现类,里面写增删改查的操作数据的方法。接口中通过代理的方法,用注解绑定sql语句。实现类里做自动注入。
controller中

Spring+Mybatis
学校讲的还有什么映射文件 iuserdao iuserdao.xml,全限定类名? 
注意:
· 映射文件所在的包和接口文件所在的包名一样。
· 映射文件名称和接口名称一致。
· 映射文件中mapper的namespace必须和接口的包名一致。
· 增删改查的 id必须和接口 函数名一致。 
· mapper接口方法不能重载。
顺序:
· 实体类属性对应数据库表的列。
· mapper接口写增删改查方法。
· mapper.xml写具体sql语句,通过delete、select、update、insert标签和id和resultType(只有查询才有返回值)绑定到具体方法上。每个标签对应接口中一个方法的实现。
· mybatis.config写数据库的连接内容和mapper.xml的位置。
· mybatisTest去调用,重点是sqlsessionfactory和 getmapper方法。

Mapper映射文件中只定义方法 和接口一样。在这个 xml文件里只写sql语句,mb框架能让我们更专注于语句的编写,而不是其他细节。

配置文件中写明数据库连接信息和mapper映射信息。

测试文件。

这下面的和学校讲的不太一样。这个是根据注解开发的。学校是根据配置文件开发的。
顺序:
· 配置jdbc数据库连接、spring、mybatis
· 实体类,定义数据库字段。
· dao层接口,定义数据库操作方法,用注解绑定sql语句。
· service接口,定义和dao接口一样的方法。
· 但是在 service实现类里,重写时是通过dao层接口调用带有sql语句的方法(MyBatis 内部运用了动态代理技术,生成接口的实现类,从而完成接口的相关功能。 没有接口实现也能用实现类的方法
· 应用类里,用service接口调实现类的方法。 即application-->service-->dao的调用关系。同样使用了上述的代理技术。

  
Controller获取实例的过程:使用@Autowired,程序在spring的容器中查找类型是BookService的bean,刚好找到有且只有一个此类型的bean,即BookServiceImpl,所以就把BookServiceImpl自动装配到了Controller的实例BookService中。
问:如果一个接口有多个实现类时,通过注解获取实例时怎么知道应该获取的是哪一个实现类serviceImpl呢?
1.通过指定bean的名称来明确到底要实例哪一个类
@Autowired需要结合@Qualifier
@Autowired
@Qualifier( "testServiceImpl2")
private TestService testService;

Spring+SpringMVC

  
springmvc会将接受到的json数据自动装配到book对象中。
@ RequestBody主要用来接收前端传递给后端的json字符串中的数据的(请求体中的数据的);而最常用的使用请求体传参的无疑是POST请求了,所以使用@RequestBody接收数据时,一般都用POST方式进行提交。

表现层数据封装:

拦截器

总结:
  • IOC,即“控制反转”(Inversion of Control)
    • 将控制权从应用程序代码中转移到框架或容器中
    • 对象的创建、组装和管理都由框架来完成
    • 依赖注入
      • 将一个对象的依赖关系传递给另一个对象
      • 构造函数注入(Constructor Injection)
        • 通过类的构造函数传入依赖对象。对象在实例化时必须提供其依赖项。
        • 保证了在创建对象时必须提供依赖项
      • 属性注入(Property/Setter Injection)
        • 通过类的属性或 setter 方法注入依赖对象。对象实例化后可以通过公开的属性或者 setter 方法设置依赖。
      • 接口注入(Interface Injection)
      • 方法注入(Method Injection)
  • aop
    • 是一种编程范式
    • 将横切关注点(cross-cutting concerns)从核心业务逻辑中分离出来,横切关注点指的是影响应用程序多个部分的功能,比如日志记录、安全性、事务管理等。
    • • 切面(Aspect): 包含了横切关注点的模块或类。
    • • 连接点(Join Point): 在程序执行过程中可以插入切面的点,
    • • 通知(Advice): 切面在连接点上执行的动作
    • • 切点(Pointcut): 匹配连接点的表达式,确定在哪些连接点应用通知。
    • • 织入(Weaving): 将切面应用到目标对象并创建新的代理对象的过程。
    • @Component @Aspect @Pointcut @Before @After @AfterReturning @AfterThrowing @Around
  • 注解 springmvc
    • 用于简化和控制控制器(Controller)和请求处理的方式
    • @Controller
      • 用于标记类为Spring MVC的控制器,处理HTTP请求
    • @RequestMapping
      • 用在类级别和方法级别,用来定义URL路径和请求方法
      • @GetMapping、@PostMapping、@PutMapping、@DeleteMapping:** 分别用于处理GET、POST、PUT和DELETE请求,是@RequestMapping的缩写形式。
    • @RequestParam
      • 从请求中获取参数值,将 HTTP 请求中的参数与方法中的参数进行绑定
    • @PathVariable 变量
      • 将URL中的模板变量绑定到方法参数
    • @RequestBody 请求
      • 将HTTP请求的body部分绑定到方法参数,处理JSON或XML格式的数据
    • @ResponseBody 回应
      • 将方法的返回值直接作为HTTP响应的body部分返回,用于返回JSON或XML格式的数据。
    • @ModelAttribute 模型属性
      • 将方法返回的对象添加到模型中,用于在视图中渲染表单。
    • @ExceptionHandler 处理程序
      • 处理特定类型的异常
    • @InitBinder
      • 初始化数据绑定器,用于定制数据绑定过程
  • 软件开发中常见的三层架构各种注解的作用
    • 表现层(Presentation Layer)
      • 用于处理用户请求和渲染视图
      • @Controller
      • @RequestMapping
      • @RequestParam
      • @ModelAttribute
    • 业务逻辑层(Business Logic Layer)
      • 用于处理业务逻辑
      • @Service
        • 标记类为服务层组件,在业务逻辑层中处理业务逻辑
      • @Transactional
        • 声明方法或类的事务行为,管理数据库事务
    • 持久层(Persistence Layer)
      • 用于与数据库交互
        • @Mapper
      • @Repository 存储库
        • 标记类为数据访问层组件(DAO),负责与数据库交互
      • @Entity、@Table、@Column
        • JPA和Hibernate中用于实体映射的注解,用于将Java类映射到数据库表和字段
      • @Id、@GeneratedValue 生成值
        • 指定实体的主键和生成策略
  • mybais 最原始的开发方式四个统一
    • 1.映射文件名和接口名一致(除扩展名)
    • 2.映射文件的名称空间(namespace) 必须是该接口的全限定类名
    • 3.查询id (select) 必须跟接口内方法名一致
    • 4.包结构必须完全一致
  • Mybatis——关联映射
    • 是一个用 Java 编写的持久层框架
    • <association> 标签表示一对一关系
    • <resultMap> 定义了主表和相关表的映射关系,使用 <collection> 标签表示一对多关系和多对多关系
  • Spring MVC阶段测试
    • 静态资源文件 C、src/main/resources/static
    • Web的模板文件 D.src/main/resources/templates
    • application.properties存放的目录 C、src/main/resources
    • ModelAndView类使用addObject方法存储数据
    • 实现重定向到“main.html”页面B@RequestMapping("/login") public String login( ){ return "redirect:/ main.html"; }
    • 自定义拦截器 C、HandlerInterceptor
      • preHandle(在处理器执行前调用)、
      • postHandle(在处理器执行后调用但在视图渲染之前)、
      • afterCompletion(在视图渲染之后调用)
    • 注册拦截器
      • @Configuration
      • @Override public void **(5)addInterceptors**
      • InterceptorRegistration ir=registry.addInterceptor(**(6)new Interceptor1( )** );
      • // 拦截interceptor路径下所有请求 ir.addPathPatterns("(7)/interceptor/*");
  • U+代码
    • Spring IoC属性注入使用set方法注入
      • <property name ="bookname" value="数据结构"/>
    • 使用有参数构造注入
      • <constructor-arg name ="bookname" value="数据结构"/>
    • 注入对象类型属性
      • < property name ="userDao" ref ="userDao"/>
    • 注解注入属性
      • @Autowired @Override
    • 注解用于处理请求地址映射
      • @RequestMapping("/hello1")
    • 响应为JSON数据集
      • @ResponseBody (3)@PathVariable("id")
    • 按bookId查询,查询bookId的值为“001”的图书,显示结果JSON格式
      • * 请写出URL地址: http://localhost:8080/**book/getById?bookId=001
    • 上传文件JSP /WEB-INF/jsp/file/upload.jsp
      • form method="**(1)post**"action="/upload /multipart" enctype="**(2)multipart/form-data**"> <input type="file" name="photo" value="请选择上传的文件" /> <input type="submit" value="提交" />
    • 文件上传控制器
      • @Controller @PostMapping("/upload/multipart") public **(5)@ResponseBody** Map<String, Object> upload((6)@RequestParam ("photo") **(7)MultipartFile** photo)return **(8)dealResultMap**(false, "上传失败"); } return **(9)dealResultMap**(true, "上传成功");
      • 处理上传文件结果 return **(10)result **
    • 通过控制类访问index.html
      • **(1)@Controller **
    • 处理请求的控制类LoginController
      • **(2)@Controller **
      • @PostMapping("**(3)/login**")
      • public ModelAndView login(**(4)@RequestParam**("loginName") String loginName,**(5)@RequestParam**("password") String password,ModelAndView mv)
    • 处理请求的控制类 MainController
      • @Controller
      • @RequestMapping("**(6)/main**")
    • *部门表和员工表
      • private **(1)Dept** dept; //定义员工和部门的关系 dept为成员变量
      • private **(2)List&lt;Emp&gt**; emps; //定义部门和员工的关系,emps为成员变量
  • 实验一
    • .applicationContext.xml 文件中属性注入(采用<property>元素)
    • 、IoC实现—基于注解方式
      • 添加注解@Repository 存储库 @Service @Autowired 自动装配
    • AOP实现_注解方式
  • 实验二:MVC框架技术应用——URL映射及方法参数的使用
    • Spring MVC 是基于Spring 基础框架派生出来的Web框架
      • 围绕DispatcherServlet 而工作 调度员
    • 。Spring MVC一开始就定位于一个较为松散的组合,展示给用户的视图(View)、控制器返回的数据模型(Model)、定位视图的视图解析器(ViewResolver)和处理适配器(HandlerAdapter)等内容是独立的。
    • Spring MVC 全流程
      • HTTP Request
      • HandlerMapping
        • HandlerExecutionChain
      • HandlerAdapter
      • ModelAndView
      • ViewResolver
      • View
    • 网页
      • div 组织内容,设置样式
      • table 展示行和列的二维数据
      • <tr 定义表格中的行
      • <td> 定义表格中的数据单元格
      • <c:out 在 JSP 页面中输出内容。它用于避免简单的字符串拼接可能导致的一些问题
      • <input> 是 HTML 中用于创建输入字段的标签。用户可以在这些字段中输入文本、选择选项或提交表单数据。
      • c:forEach 方便地遍历集合或数组中的每个元素,并对每个元素执行相应的操作
    • :JSON 视图是没有视图解析器的定位视图的,因为它不是一个逻辑视图,只是需要将数据模型(这里是User对象)转换为JSON而已
      • @RequestMapping
      • 使用@RequestParam获取参数
      • // 此处需要告知传递参数类型为JSON,不能缺少
        • contentType : "application/json",
      • // 将JSON转化为字符串传递
        • data : JSON.stringify(params),
      • 通过@RequestBody注解得到JSON参数
      • //访问模型层得到数据
        • List<User> users=userService.findAllUser();
      • //模型和视图
        • ModelAndView mv=new ModelAndView();
      • //定义模型视图
        • mv.setViewName("user/details1");
      • //加入数据模型
        • mv.addObject("users", users);
      • //返回模型和视图
        • return mv;
    • 通过URL传递参数
      • 通过处理器映射和注解@PathVariable的组合获取URL参数。
      • /@PathVariable 通过参数名称获取参数
      • //获取提交参数
        • @PostMapping("/format/commit")
        • @ResponseBody
  • 实验三:MVC框架技术应用 ——Spring Boot文件上传及@ModelAttribute注解的使用
    • Spring MVC提供MultipartFile接口作为参数来处理文件上传
      • getOriginalFilename 获取上传的文件名字
      • getInputStream 获取一个InputStream
      • getSize 上传文件的大小
      • isEmpty 文件上传内容为空,或者没有文件上传
    • 单个文件上传
      • @PostMapping("/upload/multipart")
      • @ResponseBody
      • @RequestParam("photo") MultipartFile photo
      • <input type="file" name="photo" value="请选择上传的文件" />
      • #指定默认上传的文件夹
        • spring.servlet.multipart.location=d:/temp1/
      • #限制单个文件最大大小
        • spring.servlet.multipart.max-file-size=5242880
      • #限制所有文件最大大小,这里设置为20MB
        • spring.servlet.multipart.max-request-size=20MB
      • 使用@RequestParam注解来限制上传文件的类型。
    • 批量文件上传
      • @RequestParam("photo") MultipartFile[] photos
      • 使用数组来接收多个上传的文 件
      • form method="post" action="./multipart1" enctype="multipart/form-data">
      • <input type="file" name="photo" value="请选择上传的文件" /><p>
      • <input type="file" name="photo" value="请选择上传的文件" /><p>
      • <input type="submit" value="提交" />
    • 文件上传控制器
      • @GetMapping("/upload/page1")
      • @PostMapping("/upload/multipart1")
      • @ResponseBody
  • 实验四:Spring Boot 整合Mybatis
    • MyBatis 框架是一个 Java 持久层的框 架,,它几乎可以替代 JDBC,同时提供了接口编程,只需要一个接口和XML(或者注解)
      • 1)封装JDBC 操作
      • 2)利用反射打通Java类和sql语句之间的关系
    • MyBatis 框架包括两种类型的XML文件
      • 一类是配置文件,即mybatis-config.xml
        • 包含了<mappers></mappers>节点,这里就是MyBatis 映射器
      • 一类是映射文件,例如XXXMapper.xml等
    • MyBatis 映射器分为三类
      • 1)纯XML映射器,利用SqlSession的各种方法实现增删改查
      • (2)XML映射器+接口映射器的混合类型
        • 其中xml映射器的namespace应该对应接口映射器的类名
        • MyBatis 内部运用了动态代理技术,生成接口的实现类,从而完成接口的相关功能
      • (3)注解+接口映射器的混合形式
    • // 注入用户服务类
      • @Autowired
    • // 1.通过URL传递参数
      • @GetMapping("/{id}")
    • // 相应为JSON数据集
      • @ResponseBody
    • // @PathVariable 通过参数名称获取参数
      • public User get(@PathVariable("id") Integer id)
    • // 访问模型层得到数据
      • List<User> users = userService.findAllUser();
    • @MapperScan
  • 实验五:Spring Boot 整合Mybatis——关联映射(
    • 一对一
      • 在<resultMap>元素中包含一个<association>子元素
        • property - 对象属性的名称 ,用来指定关联属性
        • column - 所对应的外键字段名称
        • javaType - 对象属性的类型
        • select –指定映入嵌套查询的子SQL语句,即使用另一个查询封装的结果。
      • //一名员工只能在一个部门
        • private Dept dept;
    • 一对多
      • 在<resultMap>元素中包含一个<collection>子元素
        • ofType 属性与javaType 属性对应用于指定实体对象中集合类属性所包含的元素类型。
      • //一个部门有多名员工
        • private List<Emp>emps;
    • 多对多可以表示为两个一对多
    • 嵌套查询
      • 通过执行另外一个SQL 映射语句来返回预期的复杂类型
  • 实验六:Spring Boot整合Mybatis——注解方法
    • @Select 注解映射查询
    • /@Results用于映射对象属性和数据库列,常用于对象属性和数据库列不同名情况
      • @Result
    • 使用注解映射无需编写映射文件,只需在接口的方法上使用注解实现对SQL语句的映射,从而简化程序的开发
    • 引用id=“userResult”的Results
      • @ResultMap("userResult")
    • .基于注解的一对一关联映射
      • @One
    • //根据id查询班级信息
      • public Sclass findClassById(Integer id);
    • 、基于注解的一对多关联映射
      • @Many
    • DeptController 类
      • @Controller
      • @RequestMapping("dept")
      • @Autowired
      • 通过URL传递参数
        • @GetMapping("/{deptno}")
      • 相应为JSON数据集
        • @ResponseBody
      • @PathVariable 通过参数名称获取参数
        • public Dept getDeptByDeptno(@PathVariable("deptno") Integer deptno)
DAO:data access object,数据访问对象。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/34639.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

vscode CMakeLists中对opencv eigen的引用方法

CMakeLists.txt 项目模式&#xff08;只有一个main函数入口&#xff09; cmake_minimum_required(VERSION 3.5)project(vsin01 VERSION 0.1 LANGUAGES CXX)set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON)set(OpenCV_DIR G:/MinGW_Opencv/opencv4.10/opencv…

11.15【JAVA】【网络编程】【DEBUG】

代码以开源至cqujk/CquJavaEE 的myExp-socketCode分支,欢迎拷打 参考REPO Java 11: Standardized HTTP Client API 没反应 这是因为这应当是两个线程,当server创建好套接字后,进入accept时,就不会继续向下运行,客户端自然也就无法发送请求 首先要保证server进入accept(这个…

华为HCIE-Datacom认证笔试+实验考试介绍

华为HCIE数通认证考试是面向那些希望成为数通网络领域专家的人员&#xff0c;考试通常两部分&#xff1a;笔试和实验考试。 考试科目&#xff1a; HCIE-Datacom笔试考试内容&#xff1a; HCIE-Datacom V1.0考试覆盖数据通信领域路由交换高阶技术、企业网络架构全景、园区网络…

Android环境搭建

Android环境搭建 第一步&#xff1a;安装 Homebrew 执行以下命令来安装 Homebrew&#xff1a; /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"检测是否安装成功&#xff1a; brew --version第二步&#xff1a;安装 No…

WLAN漫游

定义 WLAN漫游 是指STA在不同AP覆盖范围之间移动且保持用户业务不中断的行为 实现WLAN漫游的两个AP必须使用相同的SSID和安全模板&#xff08;安全模板名称可以不同&#xff0c;但是安全模板下的配置必须相同&#xff09;&#xff0c;认证模板的认证方式和认证参数也要配置相…

排序2(万字详细版)

一 快速排序 快速排序是Hoare于1962年提出的⼀种⼆叉树结构的交换排序⽅法&#xff0c;其基本思想为&#xff1a;任取待排序元素 序列中的某元素作为基准值&#xff0c;按照该排序码将待排序集合分割成两⼦序列&#xff0c;左⼦序列中所有元素均⼩ 于基准值&#xff0c;右⼦序列…

[ACTF2020 新生赛]Include

感觉毫无头绪e一下&#xff0c;发现要使用伪协议 伪协议&#xff1a;是PHP自己支持的一种协议与封装协议&#xff0c;简单说就是PHP定义的一种特殊访问资源的方法。 2.什么时候用PHP伪协议? 可能遇到的文件包含函数&#xff1a; 1、include 2、require 3、include_once 4、r…

链表【Lecode_HOT100】

1.相交链表No.160 public ListNode getIntersectionNode(ListNode headA, ListNode headB) {if(headAnull||headBnull) return null;ListNode pAheadA;ListNode pBheadB;while(pA!pB){pA(pAnull)?headB:pA.next;pB(pBnull)?headA:pB.next;}return pA; }2.反转链表No.206 pu…

时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法

目录 基本介绍程序设计参考资料获取方式 基本介绍 时频转换 | Matlab格拉姆角和场Gramian angular summation field一维数据转二维图像方法 程序设计 clear clc % close all load x.mat % 导入数据 x x(1:5120); % 本数据只选择5120个点进行分析 fs 6400 ; % 数据采样频…

试题转excel;pdf转excel;试卷转Excel,word试题转excel

一、问题描述 一名教师朋友&#xff0c;偶尔会需要整理一些高质量的题目到excel中 以往都是手动复制搬运&#xff0c;几百道题几乎需要一个下午的时间 关键这些事&#xff0c;枯燥无聊费眼睛&#xff0c;实在是看起来就很蠢的工作 就想着做一个工具&#xff0c;可以自动处理…

借助vector实现进制转换详解

进制转换&#xff0c;没什么可说的&#xff0c;大一级别的水平&#xff0c;不过在某些考研题目中可能会涉及到顺序栈的实现&#xff0c;本贴不使用顺序栈&#xff0c;用STL里面的vector模拟一下&#xff1a;关键在于想清楚【除留取余】的逻辑&#xff0c;至于用什么结构存放中间…

快速构建NLP理论知识体系

NLP理论知识体系 一句话解释NLPNLP模型及原理简述1、Rag 一句话解释NLP 如果我们要实现机器翻译、情感分析、问答系统、文本摘要、聊天机器人、构造智能化的辅助文件填写模板&#xff0c;NLP可以通过现成的模型对输入的语音、文字、图片进行处理&#xff08;分词、标词性、去停…

iptables防火墙(DNAT、SNAT)小实验

这篇是iptables服务器当中DNAT、SNAT的部分 网络拓扑图&#xff1a; 实验要求&#xff1a; 实现内外网web互访问将内web的网关指向iptables服务器ens33的IPiptables服务器添加两块网卡&#xff0c;外web服务器要跟iptables的ens36同一块网卡内部web&#xff1a;192.168.180.1…

Oracle ASM特性介绍和增删盘操作

1. 介绍 1.1. 在没有ASM之前ORACLE数据库靠什么去解决存储问题&#xff1a; 裸设备:裸设备就是没有被文件系统格式化的分区或者是直接挂载到操作系统上的磁盘。ORACLE可以直接将数据写入到裸设备中&#xff0c;读写能非常优异。像ORACLE的数据文件、控制文件、REDO日志在过去…

UiPath API接口说明

Swagger网址 私有云网址&#xff08;企业版&#xff09; https://企业/swagger/index.html 公有云网址&#xff08;社区版&#xff09; https://cloud.uipath.com/linan/LinanZhang/orchestrator_/swagger/index.html#/ 常见问题 Swagger页面测试请求时报错“You are not a…

【机械加工】数字化软件打造,如何实现3D交互可视化?

机械加工是制造业的重要领域之一&#xff0c;随着制造技术和工艺的不断发展&#xff0c;机械加工的精度和效率要求越来越高。HOOPS作为一款专业的3D图形引擎&#xff0c;可以为机械加工行业提供高效、灵活的3D建模、可视化和交互工具。下面将从以下几个方面介绍HOOPS技术在机械…

CAMAv2: A Vision-Centric Approach for Static Map Element Annotation

CAMAv2: 摘要简介相关工作A. 视觉为中心的地图构建&#xff08;Vision-centric HD Map Construction&#xff09;B. 地图元素数据集&#xff08;Map Element Datasets&#xff09;1. nuScenes 数据集2. Argoverse2 数据集3. 车道线数据集 CAMAv2A. 场景重建&#xff08;Scene R…

大数据新视界 -- 大数据大厂之 Hive 临时表与视图:灵活数据处理的技巧(上)(29 / 30)

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

Python批量生成个性化Word录用通知书

你是一名人力资源部门的员工&#xff0c;你需要根据一份Excel表格中的员工信息&#xff0c;为每位员工生成一份录用通知书。 Excel表格中包含了员工的姓名、性别、职位、入职日期等信息&#xff0c;你需要将这些信息填充到Word模板中&#xff0c;并生成独立的录用通知书文件。…

Android显示系统(05)- OpenGL ES - Shader绘制三角形(使用glsl文件)

一、前言&#xff1a; 上一篇文章我们使用了Shader绘制了一个基本的三角形&#xff0c;但是&#xff0c;发现那样写Shader程序特别麻烦&#xff0c;各种加双引号&#xff0c;还没有语法高亮提示。因为glsl也和java、c一样是一门语言&#xff0c;实际工程项目都是单独的glsl文件…