01——springboot2基础知识

一、springboot的快速入门

  1. springboot的作用:用来简化Spring应用的初始搭建以及开发过程

一、idea创建springboot工程——运行的步骤

  1. 选择Spring Initializr进行创建(现在基本上没有jdk1.8选了,都是jdk17了,需要的话,可以先选jdk17初始化然后再手动修改回jdk1.8)
    在这里插入图片描述

  2. 选择该springboot工程需要的依赖(也可以后面再在maven的pom.xml文件中添加依赖)
    在这里插入图片描述

  3. 点击create创建工程后,然后可以先写一个控制器类(controller)

//Rest模式
@RestController
@RequestMapping("/hello")
public class HelloController {@GetMappingpublic String getById(){System.out.println("springboot is running...");return "springboot is running...";}
}
  1. 运行自动生成的Application类
  2. 然后访问(默认的端口是8080):http://localhost:8080/hello
  3. 可以访问成功就说明创建的springboot工程没有问题

一、1、 springboot工程的创建方式

  1. 上面的创建步骤是(idea基于SpringBoot官网创建项目,地址:https://start.spring.io/)
  2. 可以修改网址,基于不同的官网进行创建项目,比如阿里云的:(基于阿里云创建项目,地址:https://start.aliyun.com)
  3. 也可以直接在spring官网下创建springboot项目:(这方法会下载一个压缩包给你)
    在这里插入图片描述
  4. 也可以直接创建一个maven工程然后再把它改造成一个springboot工程
      1. 手工创建一个maven项目(然后手工导入springboot需要的坐标)
        在这里插入图片描述
      1. 手工创建项目(手工制作引导类)
        在这里插入图片描述

一、2、 idea隐藏指定文件

  1. Idea中隐藏指定文件或指定类型文件(就是我们一般打开一个项目会有很多的
    • Setting → File Types → Ignored Files and Folders
    • 输入要隐藏的文件名,支持*号通配符
    • 回车确认添加

在这里插入图片描述

一、3、 springboot相对于spring的优点

  1. SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化Spring应用的初始搭建以及开发过程。
  2. Spring程序缺点
    • 依赖设置繁琐
    • 配置繁琐
  3. SpringBoot程序优点
    • 起步依赖(简化依赖配置)
    • 自动配置(简化常用工程相关配置)
    • 辅助功能(内置服务器,……)
  4. 四个方面:
      1. parent
      1. starter
      1. 引导类
      1. 辅助功能(内嵌tomcat:只是辅助功能的其中之一)

一、3.1、 springboot相对于spring的优点-parent(parent只是定义,并未使用)

  1. 结论:

      1. 开发SpringBoot程序要继承spring-boot-starter-parent
      1. spring-boot-starter-parent中定义了若干个依赖管理
      1. 继承parent模块可以避免多个依赖使用相同技术时出现依赖版本冲突
      1. 继承parent的形式也可以采用引入依赖的形式实现效果
  2. 使用:我们直接使用对应的依赖就行,无需写版本(底层会为你自动调用版本了)。依赖的版本会根据你使用的springboot版本的不同而不同。

    • 在spring-boot-dependencies里面:
        1. 定义一系列的常用坐标版本
        1. 定义一系列的常用坐标组合
        1. 直接使用组合(底层实现的)

只需写成下图这样即可:
在这里插入图片描述

一、3.1.1、 springboot相对于spring的优点-parent与starter
  1. starter

      1. 是一个坐标中定了若干个坐标,定义了当前项目使用的所有依赖坐标,以达到减少依赖配置的目的
  2. parent

    • 所有SpringBoot项目要继承的项目,定义了若干个坐标版本号(依赖管理dependencyManagement,而非依赖),以达到减少依赖冲突的目的
    • spring-boot-starter-parent各版本间存在着诸多坐标版本不同
  3. 实际开发

    • 如果有对应的starter,使用任意坐标时,仅书写GAV(G:groupId,A:atifactId,V:version)中的G和A,V由SpringBoot提供,除非SpringBoot未提供对应版本V
    • 如发生坐标错误,再指定Version(要小心版本冲突)
    • 如果没有对应的starter,则直接手写坐标
  4. parent与starter都是解决配置问题的

一、3.2、 springboot相对于spring的优点-starter

  1. 总结
      1. 开发SpringBoot程序需要导入坐标时通常导入对应的starter
      1. 每个不同的starter根据功能不同,通常包含多个依赖坐标
      1. 使用starter可以实现快速配置的效果,达到简化配置的目的
  2. 一个starter里面包含了若干个坐标定义的pom管理文件
    在这里插入图片描述
    在这里插入图片描述

一、3.3、 springboot相对于spring的优点-引导类

  • SpringBoot本身是为了加速Spring程序的开发的,而Spring程序运行的基础是需要创建自己的Spring容器对象(IoC容器)并将所有的对象交给Spring的容器管理,也就是一个一个的Bean。
  • 换了SpringBoot加速开发Spring程序后,这个引导类运行后就会产生一个Spring容器对象,并且可以将这个对象保存起来,通过容器对象直接操作Bean。
  • 引导类最典型的特征就是当前类上方声明了一个注解@SpringBootApplication
  1. 引导类:
    在这里插入图片描述
  2. SpringBoot的引导类是Boot工程的执行入口,运行main方法就可以启动项目(但未启动web服务器
    • Spring Boot的引导类(通常带有@SpringBootApplication注解的类)的main方法确实会启动Spring Boot应用,但默认情况下,它不会启动嵌入式Web服务器。
    • 在Spring Boot中,@SpringBootApplication注解是一个组合注解,它包含了@Configuration@EnableAutoConfiguration@ComponentScan三个注解。当Spring Boot应用启动时,它会根据这些注解来初始化Spring应用上下文(ApplicationContext)。
    • 然而,要启动嵌入式Web服务器(如Tomcat),还需要一些额外的配置。默认情况下,Spring Boot会尝试自动配置一个嵌入式Web服务器,但只有在检测到某些条件满足时(例如,存在@RestController@Controller注解的类)才会启动。
    • 如果你希望在没有Web控制器的情况下启动Spring Boot应用,你可以通过以下方式配置嵌入式Web服务器:
  • 显式配置嵌入式Web服务器:在application.propertiesapplication.yml文件中添加以下配置:

    server.port=8080
    

    这将启动嵌入式Web服务器并监听8080端口。

  • 使用@EnableAutoConfiguration排除Web服务器:如果你不希望启动嵌入式Web服务器,可以在@SpringBootApplication注解中排除WebServerFactoryAutoConfiguration类:

    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.autoconfigure.web.servlet.WebMvcAutoConfiguration;
    import org.springframework.boot.autoconfigure.web.servlet.WebServerFactoryAutoConfiguration;@SpringBootApplication(exclude = {WebServerFactoryAutoConfiguration.class, WebMvcAutoConfiguration.class})
    public class MySpringBootApplication {public static void main(String[] args) {SpringApplication.run(MySpringBootApplication.class, args);}
    }
    

    Spring Boot将不会尝试启动嵌入式Web服务器。

  • Spring Boot的引导类会启动Spring应用上下文,但默认情况下不会启动嵌入式Web服务器。要启动Web服务器,需要额外的配置。

  1. SpringBoot工程运行后初始化Spring容器,扫描引导类所在包加载bean

  2. 结论:

      1. SpringBoot工程提供引导类用来启动程序
      1. SpringBoot工程启动后创建并初始化Spring容器

一、3.4、 springboot相对于spring的优点-辅助功能(内嵌tomcat)

  1. tomcat是拿java代码写的,它里面有好多的jar包。java语言是靠什么运行的(靠对象运行的),那么就可以把对象交给spring管理了。它将一个tomcat容器的执行过程抽取出来,变成一个对象,然后把这个对象交给spring管理。(即spring容器中有一个tomcat对象,你现在要运行的东西,需要在tomcat对象里面去运行)。这就是为什么我们的程序中没有装tomcat服务器还能启动起来tomcat的原因

在这里插入图片描述
在这里插入图片描述

  1. springboot三款内置服务器:

    • tomcat(默认):apache出品,粉丝多,应用面广,负载了若干较重的组件
    • jetty:更轻量级,负载性能远不及tomcat
    • undertow:undertow,负载性能勉强跑赢tomcat
  2. 总结:

      1. 内嵌Tomcat服务器是SpringBoot辅助功能之一
      1. 内嵌Tomcat工作原理是将Tomcat服务器作为对象运行,并将该对象交给Spring容器管理
      1. 变更内嵌服务器思想是去除现有服务器,添加全新的服务器

一、4、springboot的基础配置(配置文件)

  1. SpringBoot默认配置文件application.properties,通过键值对配置对应属性
  2. SpringBoot中导入对应starter(依赖坐标)后,提供对应配置属性
  3. 书写SpringBoot配置采用关键字+提示形式书写
  4. SpringBoot提供了多种属性配置方式
    • properties(传统格式/默认格式)
    • yml(主流格式)
    • yaml
      在这里插入图片描述
  5. SpringBoot配置文件加载顺序:
    • application.properties > application.yml > application.yaml
    • 不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留

一、4.1、springboot的基础配置(配置文件)—yaml

  1. YAML(YAML Ain’t Markup Language),一种数据序列化格式。

    • 优点:
      • 容易阅读
      • 容易与脚本语言交互
      • 以数据为核心,重数据轻格式
    • YAML文件扩展名
      • .yml(主流
      • .yaml
  2. yaml语法规则

    • 大小写敏感
    • 属性层级关系使用多行描述,每行结尾使用冒号结束
    • 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用Tab键)
    • 属性值前面添加空格(属性名与属性值之间使用冒号+空格作为分隔)
    • #表示注释
    • 数据前面要加空格与冒号隔开
  3. 字面值表示方式

boolean: TRUE #TRUE,true,True,FALSE,false,False均可
float: 3.14 #6.8523015e+5 #支持科学计数法
int: 123 #0b1010_0111_0100_1010_1110 #支持二进制、八进制、十六进制
null: ~ #使用~表示null
string: HelloWorld #字符串可以直接书写
string2: "Hello World" #可以使用双引号包裹特殊字符
date: 2018-02-17 #日期必须使用yyyy-MM-dd格式
datetime: 2018-02-17T15:02:31+08:00 #时间和日期之间使用T连接,最后使用+代表时区
  1. 数组表示方式:在属性名书写位置的下方使用减号作为数据开始符号,每行书写一个数据,减号与数据间空格分隔
subject:- Java- 前端- 大数据
enterprise:name: itcastage: 16
subject:- Java- 前端- 大数据- 
likes: [王者荣耀,刺激战场] #数组书写缩略格式
users: #对象数组格式- name: Tomage: 4- name: Jerryage: 5
users: #对象数组格式二
-name: Tomage: 4
-name: Jerryage: 5 #对象数组缩略格式
users2: [ { name:Tom , age:4 } , { name:Jerry , age:5 } ]
一、4.1.1、springboot的基础配置(配置文件)—yaml多环境配置多文件版

在这里插入图片描述

  1. 对于开发环境、测试环境、生产环境的配置肯定都不相同,比如我们开发阶段会在自己的电脑上安装 mysql,连接自己电脑上的 mysql 即可,但是项目开发完毕后要上线就需要该配置,将环境的配置改为线上环境的。
    在这里插入图片描述
  2. 来回的修改配置会很麻烦,而 SpringBoot 给开发者提供了多环境的快捷配置,需要切换环境时只需要改一个配置即可。不同类型的配置文件多环境开发的配置都不相同。
  • 文件的命名规则为:application-环境名.yml。
    • 主配置文件中设置公共配置(全局)
    • 境分类配置文件中常用于设置冲突属性(局部)
  • application.yml(主配置文件)
# 主配置文件,决定使用下面三种环境的哪一个
#设置启用的环境
spring:profiles:active: dev #表示使用的是开发环境的配置
  • application-dev.yml(开发环境)
#开发
server:port: 80
  • application-prod.yml(生产环境)
#生产
server:port: 81
  • application-test.yml(测试环境)
#测试
server:port: 82
一、4.1.2、配置文件分类
  1. SpringBoot提供的4级配置文件分别是:

    • 类路径下配置文件(一直使用的是这个,也就是resources目录中的application.yml文件):服务于开发人员本机开发与测试
    • 类路径下config目录下配置文件:服务于项目经理整体调控
    • 程序包(打包好的工程)所在目录中配置文件:服务于运维人员配置涉密线上环境
    • 程序包(打包好的工程)所在目录中config目录下配置文件:服务于运维经理整体调控
  2. 4种配置文件如果都存在的话,有一个优先级的问题,4个文件的加载优先顺序为:

      1. file :config/application.yml 【最高】
      1. file :application.yml
      1. classpath:config/application.yml
      1. classpath:application.yml 【最低】
  3. 多层级配置文件间的属性采用叠加并覆盖的形式作用于程序

一、4.2、springboot的基础配置(配置文件)—yaml数据读取

  1. 使用@Value读取单个数据,属性名引用方式:${一级属性名.二级属性名……}
    在这里插入图片描述
  2. 配置文件中可以使用属性名引用方式引用属性
    在这里插入图片描述
  3. 属性值中如果出现转移字符,需要使用双引号包裹,特殊字符才能生效。
lesson: "Spring\tboot\tlesson"# \t表示制表符
# 注入lesson的值后,lesson = Spring boot lesson
  1. 读取yml的全部属性:封装全部数据到Environment对象

    • 数据封装到了Environment对象中,获取属性时,通过Environment的接口操作进行,具体方法是getProperty(String),参数填写属性名即可
      在这里插入图片描述
  2. 读取yml的部分属性:(最实用)

      1. 在yml配置文件中提供数据
      1. 然后提供一个封装数据的模型类(用来封装我们定义的数据,注意:封装类的属性名应该和yml文件配置的属性名一致
      1. 这个封装类必须受spring控制(封装类需要定义为Spring管理的bean,否则无法进行属性注入)
      1. 通过springboot的@ConfigurationProperties注解绑定配置信息到封装类中
        在这里插入图片描述

二、springboot整合junit

  1. 导入测试对应的starter(使用idea创建springboot工程默认会导入的)
  2. 测试类使用@SpringBootTest修饰(使用idea创建springboot工程默认会创建的)
  3. 使用自动装配的形式添加要测试的对象(使用@Autowire注解)
    在这里插入图片描述
    在这里插入图片描述

二、1、springboot整合junit——classes

  1. 测试类如果存在于引导类所在包或子包中无需指定引导类
  2. 测试类如果不存在于引导类所在的包或子包中需要通过classes属性指定引导类
    在这里插入图片描述

三、springboot整合mybatis

  1. 整合MyBatis
    • 核心配置:数据库连接相关信息(连什么?连谁?什么权限)
    • 映射配置:SQL映射(XML/注解)
大概要干嘛:
1. 勾选MyBatis技术,也就是导入MyBatis对应的starter
2. 数据库连接相关信息转换成配置文件的配置信息
3. 数据库SQL映射需要添加@Mapper被容器识别到

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

  1. 步骤:
    • ①:创建新模块,选择Spring初始化,并配置模块相关基础信息
    • ②: 选择当前模块需要使用的技术集(MyBatis、MySQL)
    • ③:设置数据源参数
    • ④:定义数据层接口与映射配置
    • ⑤:测试类中注入dao接口,测试功能

①:创建新模块,选择Spring初始化,并配置模块相关基础信息
在这里插入图片描述
②: 选择当前模块需要使用的技术集(MyBatis、MySQL)
在这里插入图片描述
③:设置数据源参数
在这里插入图片描述

④:定义数据层接口与映射配置
在这里插入图片描述

⑤:测试类中注入dao接口,测试功能
在这里插入图片描述

三、1、@Mapper注解

  1. @Mapper: 这个注解一般使用在Dao层接口上,相当于一个mapper.xml文件,它的作用就是将接口生成一个动态代理类。加入了@Mapper注解,目的就是为了不再写mapper映射文件。这个注解就是用来映射mapper.xml文件的。

  2. 使用@mapper后,不需要在spring配置中设置扫描地址,通过mapper.xml里面的namespace属性对应相关的mapper类,spring将动态的生成Bean后注入ServiceImpl中.

注意:
在Dao层不要存在相同名字的接口,也就是在Dao不要写重载。
因为mapper文件是通过id与接口进行对应的,如果写了两个同名的接口,就会导致mapper文件映射出错。
  • @Mapper注解是MyBatis框架中的注解之一,它的作用是将一个Java接口标记为一个Mapper接口,使得MyBatis可以自动地为这个接口生成代理对象。在MyBatis 3.4.0版本之前,我们需要手动编写Mapper接口的实现类,而在3.4.0版本之后,只需要在Mapper接口上添加@Mapper注解,MyBatis就会自动为我们生成实现类。
    • 需要注意的是,@Mapper注解只能用于接口上,不能用于类上。

三、2、@mysql8.x版本注意

  1. MySQL 8.X驱动强制要求设置时区
    • 修改url,添加serverTimezone设定
    • 修改MySQL数据库配置(略)
  2. 数据库驱动过时的警告,根据提示修改配置即可,弃用com.mysql.jdbc.Driver,换用com.mysql.cj.jdbc.Driver

四、springboot整合mybatis-Plus

在这里插入图片描述

  1. 步骤:(需要使用的第三方技术无法通过勾选确定时,需要手工添加坐标

      1. 手工添加MyBatis-Plus对应的starter
      1. 数据层接口使用BaseMapper简化开发
      1. 写测试类
  2. 具体操作:
    ①手工添加MyBatis-Plus对应的starter
    在这里插入图片描述

② yml的配置
在这里插入图片描述
③数据层接口使用BaseMapper简化开发
在这里插入图片描述
④测试类:
在这里插入图片描述

五、springboot整合druid

  1. 整合第三方技术通用方式
    - 1. 导入对应的starter(即对应的依赖)
    - 2. 根据提供的配置格式,配置非默认值对应的配置项(yml配置文件)

在这里插入图片描述

  1. 整合druid步骤:
      1. 整合Druid需要导入Druid对应的starter
      1. 根据Druid提供的配置方式进行配置
      1. 编写测试类

①整合Druid需要导入Druid对应的starter
在这里插入图片描述
②根据Druid提供的配置方式进行配置

在这里插入图片描述

③测试
在这里插入图片描述

总结

  • 上面整合的几个模块,其实都是类似的步骤:
      1. 添加依赖
      1. 编写配置文件
      1. 编写业务代码
  • 可以发现使用springboot整合技术相比spring真的简化了很多了

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

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

相关文章

拼多多m 端详情 滑块 分析

声明: 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 有相关问题请第一时间头像私信联系我删…

脚本注入网页:XSS

跨站脚本攻击(Cross-Site Scripting,简称 XSS)是一种常见的网络安全漏洞。它是指攻击者在网页中注入恶意脚本代码,当用户访问该网页时,恶意脚本会在用户的浏览器中执行,从而导致一系列安全问题。这些问题可…

matlab处理语音信号

matlab有处理语音信号的函数wavread,不过已经过时了,现在处理语音信号的函数名称是audioread选取4.wav进行处理(只有4的通道数为1) 利用hamming窗设计滤波器 Ham.m function [N,h,H,w] Ham(fp,fs,fc)wp 2*pi*fp/fc;ws 2*pi*…

使用eBPF进行半虚拟化调度\动态vcpu优先级管理

使用eBPF进行半虚拟化调度\动态vcpu优先级管理 动机 双重调度: 主机(Host)调度虚拟CPU(vcpu)线程。客户机(Guest)调度在客户机内部运行的任务。 调度器之间的无知: 主机在调度vcpu…

【经验分享】电商api接口——各类商品数据一键获取

目前,双十一促销活动正在火爆预热进行中。大促期间,消费者常常会做攻略以防被坑,而活动期间,品牌商家方也需要有所行动,避免一些不必要的损失。 大促期间,商家前前后后的改价活动往往比较频繁,…

APP自动化中 ADB Monkey用法

一、monkey是干什么的? 我们可以使用monkey做手机端性能的压力测试,稳定性测试 二、monkey在使用的时候,他的运行特性 monkey默认配置下执行,会在手机中随机的点击或者轻触我们的手机中应用,不过这个时候&#xff0…

音频3A——初步了解音频3A

文章目录 前言一、3A使用的场景和原理1.AEC2.AGC3.ANS/ANR4.硬件3A和软件3A的区别1)层级不同2)处理顺序不同3)优缺点 5.处理过程 二、3A带来的问题三、开源3A算法总结 前言 在日常的音视频通话过程中,说话的双端往往会面对比较复…

2. 程序结构

在本章中,我们将开始做一些真正称得上编程的事情。我们将扩展对 JavaScript 语言的掌握,不再局限于目前所见的名词和句子片段,而是能够表达有意义的散文。 表达式和语句 在第 1 章中,我们创建了值,并应用运算符来获取…

CSS的背景属性

background-colcor属性 设置背景颜色 width: 200px;height: 200px;background-color: aqua; background-image属性 设置元素的背景图像 元素的背景是元素的总大小,包括填充和边界(不包括外边距)默认情况下background-image属性放置在元素的…

Seata学习笔记

目录 Seata的三大角色 角色 相关流程 相关事务模式 AT 模式(默认模式) 概述 整体机制 分析 XA 模式 概述 机制 分析 TCC 模式 概述 机制 分析 SAGA 模式 概述 机制 分析 参考: Seata的三大角色 角色 TC (Transaction Co…

STC89C52定时器与中断 详细介绍 0基础入门

STC89C52定时器与中断 前言定时器/计数器定时器/计数器 功能选择定时器/计数器 模式选择使用寄存器进行功能选择与模式选择 中断使用寄存器进行中断配置中断执行操作 总结完整程序 前言 对于定时器与中断,这是两个完全不同的概念,在单片机中它们也对应着…

C++的哲学思想

C的哲学思想 文章目录 C的哲学思想💡前言💡C的哲学思想☁️C底层不应该基于任何其他语言(汇编语言除外)☁️只为使用的东西付费(不需要为没有使用到的语言特性付费)☁️以低成本提供高级抽象(更…

WebAssembly进阶,vue3 使用 WebAssembly,及 WebAssembly vs JavaScript 的性能对比

目录 核心使用步骤 .c文件.cpp文件编译 使用 Emscripten 转译文件 页面中引入.wasm文件中的函数 WebAssembly vs JavaScript 的性能对比 性能对比关键点: 具体场景 实际案例分析 如果对WebAssembly不熟悉可以前往:WebAssembly最详教程,进行WebAssembly基础学习 Web…

【有啥问啥】Stackelberg博弈方法:概念、原理及其在AI中的应用

Stackelberg博弈方法:概念、原理及其在AI中的应用 1. 什么是Stackelberg博弈? Stackelberg博弈(Stackelberg Competition)是一种不对称的领导者-追随者(Leader-Follower)博弈模型,由德国经济学…

【LVIO-SLAM】 激光slam理论与实践

【LVIO-SLAM】 激光slam理论与实践 1. 激光slam理论与实践1.1 2D激光SLAM1.2 3D激光SLAM 2. 激光雷达运动畸变去除2.1 Lidar数学模型与点云去畸变2.2 运动畸变 3. 激光slam的前端配准3.1 帧间匹配3.2 3.2 ICP (Iterative Closest Point)3.3 PI-ICP (Point-to-Line Iterative Cl…

ubuntu22 解决docker无法下载镜像问题

参考在 Ubuntu 中安装 Docker_ubuntu安装docker-CSDN博客 安装docker完成后,运行如下命令验证 Docker 服务是否在运行: systemctl status docker 运行(sudo docker run hello-world)例子报错: 问题:Docker…

Vue 内存泄漏分析:如何避免开发过程中导致的内存泄漏问题

一. 引言 Vue 作为一款流行的前端框架,已经在许多项目中得到广泛应用。然而,随着我们在 Vue 中构建更大规模的应用程序,我们可能会遇到一个严重的问题,那就是内存泄漏。内存泄漏是指应用程序在使用内存资源时未正确释放&#xff…

iPhone 16 还剩一个月,微软开源新技术让手机以 6 倍速度提前跑上大模型

作者 | 微软亚洲研究院 责编 | 王启隆 出品 | AI 科技大本营(ID:rgznai100) 随着人工智能技术的飞速发展,将大语言模型(LLMs)部署到边缘设备上已成为当前 AI 领域的一个热门趋势。这一趋势不仅体现在微软 Windows 11 AI PC 等产品…

【Qualcomm】高通SNPE框架简介、下载与使用

说明:基础内容!不建议订阅!不建议订阅!不建议订阅! 目录 一 高通SNPE框架 1 SNPE简介 2 QNN与SNPE 3 Capabilities 4 工作流程 二 SNPE的安装与使用 1 下载 2 Setup 3 SNPE的使用概述 一 高通SNPE框架 1 SNP…

Axure精选各类组件案例集锦:设计灵感与实战技巧

在设计大屏页面时,设计师们面临着如何构建丰富、直观且用户友好的界面的挑战。幸运的是,Axure等强大的原型设计工具提供了丰富的可视化组件库,为设计师们提供了无限的设计灵感和实战技巧。本文将通过精选的各类组件案例,探讨大屏设…