首页/新闻资讯/正文详情

Java EE 进阶:6.SpringBoot 配置文件(第一弹)

发布时间:2026/11/7 14:33:29 来源:云帆数科 栏目:资讯中心
Java EE 进阶:6.SpringBoot 配置文件(第一弹)
目录1.配置文件作用SpringBoot 配置文件2.配置文件快速入手3.配置文件的格式特殊说明4.properties 配置文件说明4.1 properties 基本语法4.2 读取配置文件4.3 properties 缺点分析补充乱码问题5.yml 配置文件说明5.1 yml 基本语法使用 yml 连接数据库yml 和 properties 连接数据库的配置对比5.2 yml 使用进阶5.2.1 yml 配置不同数据类型及 null5.2.1.1 yml 配置读取5.2.1.2 注意事项value 值加单双引号课件内容5.2.2 配置对象5.2.3 配置集合5.2.4 配置Map5.3 yml 优缺点优点缺点本节目标1. 学习SpringBoot配置文件的格式以及对应的语法2. 了解两个配置文件格式的差异1.配置文件作用咱们经常接触配置文件比如说咱们创建 IDEA 的项目IDEA 的配置文件就在这里面呢计算机上有数以千计的配置文件, 我们使用的绝大多数软件, 比如浏览器, 微信, Idea, 甚至电脑, 手机, 都离不开配置文件. 我们可能永远不会直接与其中的大部分文件打交道但它们确实以不同的形式散落在我们的计算机上, 比如C:\Users, C:\Windows文件夹, 以及各种 *.config, *.xml 文件配置文件主要是为了解决硬编码代码写死带来的问题, 把可能会发生改变的信息, 放在一个集中的地方, 当我们启动某个程序时, 应用程序从配置文件中读取数据, 并加载运行.硬编码是将数据直接嵌入到程序或其他可执行对象的源代码中, 也就是我们常说的代码写死.比如手机字体大小如果采用硬编码的方式, 就直接在程序中指定字体大小, 所有的用户使用的都是同一个字体大小但是不同的用户有不同的偏好, 我们可以把手机字体的大小放在配置文件中, 当程序启动时, 读取配置, 以用户设置的字体大小来显示.使用配置文件, 可以使程序完成用户和应用程序的交互, 或者应用程序与其他应用程序的交互SpringBoot 配置文件SpringBoot支持并定义了配置文件的格式, 也在另一个层面达到了规范其他框架集成到SpringBoot的目的.很多项目或者框架的配置信息也放在配置文件中, 比如:• 项目的启动端口• 数据库的连接信息(包含用户名和密码的设置)比如配置数据库的账号密码JDBC 的账号密码要是写在代码里那就是写死了接下来我们要学的话就是放在配置文件中了要改就去配置文件中去改~~• 第三方系统的调用密钥等信息• 用于发现和定位问题的普通日志和异常日志等.项目的启动端口SpringBoot内置了Tomcat服务器, 默认端口号是8080, 但是用户电脑上8080端口号有可能就被其他应用程序占用了, 所以SpringBoot需要支持让用户自定义端口号数据库连接信息为了更方便简单的访问数据库, 出现了一些持久层框架, 其实就是对JDBC进行了更深层次的封装.让用户通过简单几行代码就可完成数据库的访问. 但是不同的应用程序访问的数据库不同, 这些持久层框架就需要支持用户可以自定义配置数据库的连接信息.2.配置文件快速入手我们在前面讲了Tocmat 默认端口号是 8080, 所以我们程序访问时的端口号也是 8080但是如果8080端口号已经被其他进程使用了呢? 我们可以通过配置文件来修改服务的端口号SpringBoot 在创建项目时, 就已经帮我们创建了配置文件之前的配置文件里面都是空的Spring 3.X 之后多了一行spring.application.namespring-book-demo这个就是定义了应用的名称是什么~~修改application.properties 文件在里面添加一行把端口号 8080 改为 9090server.port9090重新运行程序, 观察日志显示Tomcat启动端口号为9090访问程序:此时http://127.0.0.1:8080/login.html 就不能访问了需要改为http://127.0.0.1:9090/login.html 才能访问3.配置文件的格式Spring Boot 配置文件有以下三种• application.properties• application.yml• application.yamlyml 为yaml的简写, 就像 htm 是 html 的简写实际开发中出现频率最高.yaml 和yml 的使用方式一样, 课堂中只讲yml文件的使用当应用程序启动时, Spring Boot会自动从classpath路径找到并加载application.properties 和 application.yaml 或者 application.yml 文件.注意此处的配置文件名只能是 application改成 applications 都是用不了的发现此时就不能生效了也可以通过spring.config.name指定文件路径和名称, 参考Externalized Configuration :: Spring Boot如下图所示类似商品的包装一样, 有新老两款包装. properties 类型的配置文件就属于老款包装也是创建 Spring Boot 项目时默认的文件格式主要是因为仓库里还有库存)而 yml 属于新版包装如果用户了解情况直接指定要新款包装那么就直接发给他特殊说明1. 理论上讲 .properties 和 .yml 可以并存在于一个项目中当 .properties 和 .yml 并存时两个配置都会加载取并集∪. 如果配置文件内容有冲突, 则以 .properties 为主, 也就是.properties 优先级更高.下面来演示一下先把 application.properties 中的内容注释掉确保二者都能生效#spring.application.namespring-book-demo #server.port9090application.yml 端口号设置为 9091格式后面会讲~~server: port: 9091此时发现 application.yml 能正常使用接下来取消 application.properties 中的注释再次运行运行的端口号为 9090证明 application.properties 优先级比 application.yml 更高~~2. 虽然理论上来讲 .properties 可以和 .yml 共存但实际的业务当中我们通常会采取一种统一的配置文件格式这样可以更好的维护(降低故障率).4.properties 配置文件说明properties 配置文件是最早期的配置文件格式也是创建 SpringBoot 项目默认的配置文件4.1 properties 基本语法properties 是以键值的形式配置的key 和 value 之间是以连接的如# 配置项目端口号 server.port8080 #配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordrootkey 建议所有单词小写单词之间使用 点( . ) 来分割等号前后有无空格都可以PS小技巧配置文件中使用“#”来添加注释信息。咱们当前先学习语法和使用, 更多配置信息随着课堂练习再学习. 感兴趣的也可以参考官网:Common Application Properties :: Spring Boot4.2 读取配置文件如果在项目中想要主动的读取配置文件中的内容可以使用 Value 注解来实现。Value 注解使用 ${} 的格式读取如下代码所示application.propertiesspring.application.namespring-ioc-demo server.port9090 #配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordroot #自定义配置 my.key10properties 配置如下:package com.bit.ioc.controller; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * Created with IntelliJ IDEA. * Description: * User: CoderYanger * Date: 2026-10-31 * Time: 18:35 */ RequestMapping(/prop) ResponseBody Controller public class PropertiesController { Value(${my.key})//读取配置文件 private String mykey; RequestMapping(/read) public String readvalue(){ return 读取配置文件my.key:mykey; } }最终执行效果http://127.0.0.1:9090/prop/read那么接下来我像读取一些其他格式的如何去读取呢我们再来学习一个新的注解 PostConstruct 这是我们后面要学习的内容提前给大家讲了这个注解在实例化之后就会执行是个初始化方法我们生成一个对象第一个要分配内存空间第二个进行实例化第三个就执行初始化方法了application.propertiesspring.application.namespring-ioc-demo server.port9090 #配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordroot #自定义配置 my.key10 my.key2truepackage com.bit.ioc.controller; import jakarta.annotation.PostConstruct; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.stereotype.Repository; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; /** * Created with IntelliJ IDEA. * Description: * User: CoderYanger * Date: 2026-10-31 * Time: 18:35 */ RequestMapping(/prop) ResponseBody Controller public class PropertiesController { Value(${my.key})//读取配置文件 private String mykey; Value(${my.key2})//读取配置文件 private String mykey2; RequestMapping(/read) public String readvalue(){ return 读取配置文件my.key:mykey; } PostConstruct public void init(){ System.out.println(mykey2:mykey2); } }运行程序后我们发现它在应用初始化完成之后它就执行初始化方法了然后打印了应用启动成功说明这是个初始化的注解~~那么我们就不用再去打开浏览器去访问了直接一运行就可以看到结果了我们接下来把上述代码的 String 换成 Boolean Value(${my.key2})//读取配置文件 private Boolean mykey2;看看会不会报错发现并没有不用怀疑这个 true 是 String 类型因为 Java 是一个强类型语言如果是 String 是不能赋值给它的~~这也就说明了你想让它是个什么类型在配置文件中是随便写的你在另一边使用不同类型去接收就行了spring.application.namespring-ioc-demo server.port9090 #配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordroot #自定义配置 my.key10 my.key2true比如说我就像把这个 10 改成 Integer 类型那么只需在另一边改成 Integer 即可RequestMapping(/prop) ResponseBody Controller public class PropertiesController { Value(${my.key})//读取配置文件 private Integer mykey; Value(${my.key2})//读取配置文件 private Boolean mykey2; RequestMapping(/read) public String readvalue(){ return 读取配置文件my.key:mykey; } PostConstruct public void init(){ System.out.println(mukey:mykey); System.out.println(mykey2:mykey2); } }我们运行后就能发现能够正确读进去但是如果配置文件写的不是 10而是 10aaa在另一边拿的时候还用 Integer 能赋值成功吗spring.application.namespring-ioc-demo server.port9090 #配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordroot #自定义配置 my.key10aaa my.key2true我们发现报错了显示的是10aaa 数字格式化异常这说明这跟我们学习 Spring 接收参数是有一点点像的传参数的时候可以不管它是什么你需要什么类型你在这边直接写什么类型就可以了底层都是 String 转成相应类型的~~4.3 properties 缺点分析properties 配置是以 key-value 的形式配置的如下图所示从上述配置 key 可以看出properties 配置文件中会有很多冗余的信息比如这些想要解决这个问题就可以使用 yml 配置文件的格式化了.补充乱码问题此时它的文件格式是 ISO-8859-1 而不是 UTF-8我们需要把它转成 UTF-8改的时候需要改两个地方在设置中搜索 Encodeing改完 UTF-8 后然后点击 Apply 应用需要注意此时已经乱码的部分就恢复不了了只能说接下来不会再乱码了~~还有第二个要改的地方刚刚我们改的 File Setting 只是说针对当前项目不会乱码那么我们新建项目要避免乱码还要在这里也改一下界面与上面也是一样的也是这两个地方改为 UTF-8接下来再创建项目的时候就默认是 UTF-8 了闲聊之前我们设置 Maven 的时候也是要改两遍的第一次在这里改这只是对当前项目生效要想对新项目也生效需要在这里用相同的方式再设置一遍5.yml 配置文件说明yml 是 YAML 是缩写它的全称 Yet Another Markup Language 翻译成中文就是“另一种标记语言.我们先来学习 yml 的语法5.1 yml 基本语法yml 是树形结构的配置文件它的基础语法是key: value.key 和 value 之间使用英文冒号加空格的方式组成空格不可省略基础语法如下第一项的配置为正确的key 也是高亮显示的. 第二项没有空格是错误的使用方式第二项的 key 也没有高亮显示当多层的时候比如表示这个#配置数据库连接信息 spring.datasource.urljdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.usernameroot spring.datasource.passwordroot我们用换行代替 . #一层 key mykey: value #多层 key spring: datasource: url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse username: root password: root注意①key 不能重复所以可以把多个 spring 和 datasource 目录里的写在一起②spring 和 datasource 冒号后面可以不加空格直接换行③但是 url、username、password 这种 key 和 value 相连接的在 冒号 后面 必须加上 空格④同一级的空格数必须相同必须对齐否则会被认定为不同级别比如写成此时表示的路径就变成了把 url 当作 username 的上一级了spring.datasource.url.username你可以用一个空格但是必须对齐咱们通常情况下都是使用两个空格~~⑤当然只有一个的时候可以写成spring.datasource.url: jdbc:mysql://127.0.0.1:3306/testdb?characterEncodingutf8useSSLfalse spring.datasource.username: root spring.datasource.password: root但是有重复的时候就不行了⑥开头第一行不能加空格spring 前面不能加因为是开头使用 yml 连接数据库yml 使用示例spring: datasource: url: jdbc:mysql://127.0.0.0:3306/dbname?characterEncodingutf8useSSLfalse username: root password: rootyml 和 properties 连接数据库的配置对比5.2 yml 使用进阶5.2.1 yml 配置不同数据类型及 null注意下面是 非标准格式标准格式是 冒号 然后换行~~# 字符串 string.value: Hello # 布尔值true或false boolean.value: true boolean.value1: false # 整数 int.value: 10 # 浮点数 float.value: 3.14159 # Null~代表null null.value: ~ # 空字符串 #直接后面什么都不加就可以了但这种方式不直观更多的表示是使用引号括起来 empty.value: 注意①Null接收 null 的时候也要使用 能够接收 null 类型的去接收不能说用 int 接收②空字符串后面直接啥也不加但这种方式给人感觉就是忘加了所以通常加上引号单双引号都可以~~5.2.1.1 yml 配置读取yml 读取配置的方式和 properties 相同使用 Value 注解即可实现代码如下yml 配置my: key3: Hello key4: 5Controller public class YmlController { Value(${my.key3}) private String myKey3; Value(${my.key4}) private String myKey4; PostConstruct public void init(){ System.out.println(mukey3:myKey3); System.out.println(mykey4:myKey4); } }运行结果5.2.1.2 注意事项value 值加单双引号课件内容字符串默认不用加上单引号或者双引号如果加英文的单双引号可以表示特殊的含义。尝试在 application.yml 中配置如下信息string: str1: Hello \n Spring Boot. str2: Hello \n Spring Boot. str3: Hello \n Spring Boot.读取程序实现代码如下RestController public class ReadYml { Value(${string.str1}) private String str1; Value(${string.str2}) private String str2; Value(${string.str3}) private String str3; RequestMapping(/yml) public String readYml(){ System.out.println(str1); System.out.println(str2); System.out.println(str3); return yml; } }以上程序的执行结果如下图所示从上述结果可以看出• 字符串默认不用加上单引号或者双引号。• 单引号会转义特殊字符使其失去特殊功能, 始终是一个普通的字符串.• 双引号不会转义字符串里面的特殊字符, 特殊字符会表示本身的含义.此处的转义理解起来会有些拗口, \n 本意表示的是换行使用单引号会转义, 就是说, \n 不再表示换行了, 而是表示一个普通的字符串使用双引号不会转义, 表示 \n 表示的是它本身的含义, 就是换行JavaEE的学习重在理解和使用, 不纠结概念和描述5.2.2 配置对象我们还可以在 yml 中配置对象如下配置person: id: 1 name: Java age: 18或者是使用行内写法与上面的写法作用一致了解即可八百年见不到一次person: {id: 1,name: Java,age: 18}Configuration//此时Spring会帮我创建一个对象放到容器中 Data public class Person { private Integer id; private String name; private Integer age; }Controller public class YmlController { Value(${my.key3}) private String myKey3; Value(${my.key4}) private String myKey4; Autowired//此时Spring就会从容器中根据类型去匹配了 private Person person; PostConstruct public void init(){ System.out.println(mukey3:myKey3); System.out.println(mykey4:myKey4); System.out.println(person:person); } }运行结果发现确实从 Spring 中拿到值了但是值全是 null那么我们希望接下来能够从 配置文件 中获取值然后赋值上去这时我们就需要学习一个新的注解了ConfigurationPropertiesConfigurationProperties(prefix person)//前缀就是配置文件中的person Configuration//此时Spring会帮我创建一个对象放到容器中 Data public class Person { private Integer id; private String name; private Integer age; }运行结果发现这就能够从配置文件中获取对象的值了那如果说我就想拿到 id 怎么去拿用 Value Controller public class YmlController { Value(${my.key3}) private String myKey3; Value(${my.key4}) private String myKey4; Value(${person.id}) private Integer id; Autowired//此时Spring就会从容器中根据类型去匹配了 private Person person; PostConstruct public void init(){ System.out.println(id:id); System.out.println(mukey3:myKey3); System.out.println(mykey4:myKey4); System.out.println(person:person); } }运行结果但是这种就只能一个个去拿了场景不一样~~5.2.3 配置集合在 yml 中配置 list 和 数组 是一模一样的只不过接收的时候可以用 List 去接收也可以用数组去接收所以此处我们只讲 List 就可以了~~配置文件也可以配置 list 集合如下所示dbtypes: name: - mysql - sqlserver - db2我们配置 List 和配置 Map 都是基于对象的我们不能单纯的去拿这个值 dbtypes.name而且这个 - 后面的空格是不能省略的集合的读取和对象一样也是使用 ConfigurationProperties 来读取的具体实现如下Component ConfigurationProperties(prefix dbtypes) Data public class DbTypes { private ListString name; }Controller public class YmlController { Value(${my.key3}) private String myKey3; Value(${my.key4}) private String myKey4; Value(${person.id}) private Integer id; Autowired//此时Spring就会从容器中根据类型去匹配了 private Person person; Autowired private DbTypes dbTypes; PostConstruct public void init(){ System.out.println(id:id); System.out.println(mukey3:myKey3); System.out.println(mykey4:myKey4); System.out.println(person:person); System.out.println(dbTypes:dbTypes); } }运行后我们发现就拿到值了有同学会问这真的是 list 吗是的如果不是 list 的话类型不匹配是会报错的这里名称是一一对应的关系如果我们把 DbTypes 类中的 name 改为 name1那么就取不到值了补充知识这部分不做强要求是后面 Spring 原理才会涉及到的理论知识当前只是辅助理解因为好多同学在问当前我们学的还是有点少主要应用为主~~类的生命周期把类交给 Spring 之后是如何管理的1.实例化不管是不是交给 Spring 管理都要先分配一个内存空间~~2.属性注入依赖注入分配完空间之后就去 new但是 new 这个步骤又分为 3 步1先 new 一半因为里面还有一些值需要注入进来2从容器中找这个对象3这个对象没有依赖的东西不存在接下来再创建3.初始化方法PostConstruct 注解只是其中的一个初始化方法为啥要先属性注入再初始化因为初始化方法里面有可能会用到它4.应用启动成功可以使用了5.销毁5.2.4 配置Map配置文件也可以配置 map如下所示maptypes: map: k1: kk1 k2: kk2 k3: kk3或者是使用行内写法(与上面的写法作用一致):了解即可八百年见不到一次maptypes: {map: {k1: kk1,k2: kk2,k3: kk3}}我们定义一个球类的 mapdbtypes: name: - mysql - sqlserver - db2 ball: k1: v1 k2: v2 k3: v3Map 的读取和对象一样也是使用 ConfigurationProperties 来读取的具体实现如下Component ConfigurationProperties(prefix dbtypes) Data public class DbTypes { private ListString name; private MapString,String ball; }运行结果我们上面通过 Value 也能拿到值那么这里我们能不能也通过 Value 来拿到值呢我们来尝试一下Controller public class YmlController { Value(${my.key3}) private String myKey3; Value(${my.key4}) private String myKey4; Value(${person.id}) private Integer id; Value(${dbtypes.ball}) private MapString,String ball; Autowired//此时Spring就会从容器中根据类型去匹配了 private Person person; Autowired private DbTypes dbTypes; PostConstruct public void init(){ System.out.println(id:id); System.out.println(mukey3:myKey3); System.out.println(mykey4:myKey4); System.out.println(person:person); System.out.println(dbTypes:dbTypes); System.out.println(ball:ball); } }实践出真知发现并不可以所以说配置集合、配置 map 这种方式我们只能把它们放在对象里面去使用使用的时候也要在外层封装一层对象~~但是在这里是可以有单个值的这就是一个普通的对象了可以读Component ConfigurationProperties(prefix dbtypes) Data public class DbTypes { private Integer id; private ListString name; private MapString,String ball; }此时配置文件中也要有个 id 与之对应dbtypes: id: 5 name: - mysql - sqlserver - db2 ball: k1: v1 k2: v2 k3: v3运行结果发现赋值成功闲聊这部分的代码不需要大家背只需要会判断题和选择题就行了判断题CV 过来之后判断是不是少个空格啥的判断是不是复制粘贴错了选择题选择注解的时候大多都是相似的别选错了主要通过练习达到记忆的效果~~5.3 yml 优缺点优点1.可读性高写法简单易于理解2.支持更多的数据类型可以简单表达对象数组ListMap 等数据形态3. 支持更多的编程语言, 不止是Java中可以使用, 在Golang, Python, Ruby, JavaScript中也可以使用闲聊这些优点不是说 properties 不具备的properties 也可以在 Java 外使用也挺优秀~~缺点1. 不适合写复杂的配置文件比如properties格式如下keycloak.realm demo keycloak.resource fm-cache-cloud keycloak.credentials.secret d4589683-0ce7-4982-bcd3 keycloak.security[0].authRoles[0] user keycloak.security[0].collections[0].name ssologinurl keycloak.security[0].collections[0].patterns[0] /login/*转换为ymlkeycloak: realm: demo resource: fm-cache-cloud credentials: secret: d4589683-0ce7-4982-bcd3 security: - authRoles: - user collections: - name: ssologinurl patterns: - /login/*转换的过程也比较花费精力, 如果配置更复杂一点, 可读性会更差, 代码也会更难写2. 对格式有较强的要求(一个空格可能会引起一场血案)答疑yml、json、xml 有什么区别最主要区别就是语法不同这是最大的区别json、xml、yml 的话其实都可以作为配置文件也可以作为数据传输去使用的很多场景下它们三个也可以去替换但是相对的应用场景也不太一样我们一般 json 用于数据交互、数据传输像 A系统 和 B系统 去发送消息json 和 xml 的最大区别也是语法的区别json 是不能写注释的yml 和 xml 都是可以写注释的但是 json 可以表示各种各样的格式很复杂的格式也是可以表示的相比之下它的可读性也比较高比较节约带宽yml 和 xml 通常是做配置使用的xml 一般是应用的一些相关配置yml 的话一般是业务的相关配置应用场景的话在系统支持的情况下它们三个是可以互相替换的但是在咱们这里Spring 没有 jsonSpring 选择的是 yml 和 properties所以不能使用 json

相关推荐

Hjem Standalone 回滚实战:Generations 与 Rollback 让配置变更可逆
Hjem Standalone 回滚实战:Generations 与 Rollback 让配置变更可逆

【免费下载链接】hjem Streamlined, elegant $HOME management with Nix 项目地址: https://gitcode.com/gh_mirrors/hje/hjem 点击查看 免费下载 Hjem 是一个基于 Nix 的 $HOME 管理工具,其 Standalone 模式为每次配置变更自动生成 generation&#xf… · 2026/11/5 8:20:18

打造专属Switch界面:Ultrahand Overlay 主题、壁纸与音效定制完整指南
打造专属Switch界面:Ultrahand Overlay 主题、壁纸与音效定制完整指南

【免费下载链接】Ultrahand-Overlay The fully craft-able Nintendo Switch overlay executor. 项目地址: https://gitcode.com/gh_mirrors/ul/Ultrahand-Overlay 点击查看 免费下载 想让 Ultrahand Overlay 的界面彻底变成自己的风格吗?这套任天堂 Swi… · 2026/11/6 5:16:05

【分享】带着我的deepseek-v4-flash-vision-rag去参加RAG挑战赛
【分享】带着我的deepseek-v4-flash-vision-rag去参加RAG挑战赛

上周在linuxdo社区发布了我的新rag skill: 最近在社区发布了3个基于deepseek-v4-flash-vision 视觉deepseek理解 的开源skill项目: 佬友评论说,怀疑和有问题。所以我完整测试一次看看行不行: 1 我先找一本扫描版的lego图书&#x… · 2026/11/5 11:17:41

电工证科一考试流程2026河南最新政策怎么走
电工证科一考试流程2026河南最新政策怎么走

电工证科一考试流程2026河南最新政策怎么走 你是不是正愁找不到靠谱的电工证报名渠道?怕被中介坑?2026年河南最新政策对电工证科一考试流程有了新调整,很多人因为不了解流程,白白浪费了时间和金钱。今天就从许昌劳务班组负责人的视角,手把手带你… · 2026/11/7 16:54:01

东安县电工证怎么考?学历不高也能拿全国通用证书
东安县电工证怎么考?学历不高也能拿全国通用证书

东安县电工证怎么考?学历不高也能拿全国通用证书 你是不是也在担心,学历不高是不是就不能报考电工证?别急,东安县电工证怎么考这个问题,其实很多人都有类似的困扰。好消息是,电工证考试并没有设置太高的学历门槛,只要符合条件, 全国通用… · 2026/11/7 16:54:01

东安县电工证怎么考千万别踩坑的避坑指南
东安县电工证怎么考千万别踩坑的避坑指南

东安县电工证怎么考千万别踩坑的避坑指南 怕考不过白交培训费?东安县电工证怎么考,选错培训机构真的血亏!很多人在报名前没有做足功课,结果不仅浪费了时间和金钱,还耽误了工作机会。今天咱们不玩虚的,从报名到考试、再到复审,一步一分析,帮你避开那些… · 2026/11/7 16:54:01

茂名电工证能年审吗良心建议:学历不高也能走通这条路
茂名电工证能年审吗良心建议:学历不高也能走通这条路

茂名电工证能年审吗良心建议:学历不高也能走通这条路 你是不是也担心自己学历不高,考不了电工证?别急,今天我来告诉你, 茂名电工证能年审吗 这个问题的答案,以及为什么学历不高反而可能是你的优势。… · 2026/11/7 16:54:01

低压电工证报名条件学历要求不高?太谷高压电工证考试良心建议来了
低压电工证报名条件学历要求不高?太谷高压电工证考试良心建议来了

低压电工证报名条件学历要求不高?太谷高压电工证考试良心建议来了 学历不高怕报不上名?你不是一个人。太谷高压电工证考试虽然是个“门槛”,但门槛并不高,尤其是对像你这样想转行、想提升技能的学员来说,只要准备到位,完全有机会拿下证书。别被“学历限… · 2026/11/7 16:54:01

河南收电工证的公司内部消息:实操考试心里没底怕挂科?看完这篇稳过!
河南收电工证的公司内部消息:实操考试心里没底怕挂科?看完这篇稳过!

河南收电工证的公司内部消息:实操考试心里没底怕挂科?看完这篇稳过! 实操考试心里没底怕挂科?这几乎是每个准备报考河南收电工证的公司学员的共同焦虑。尤其是像我们这类在信阳从事水利工程的,动不动就在工地、泵站、变电站周边干活, 电工证… · 2026/11/7 16:53:00

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?
澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄?

澳洲水电工证考试:证书过期了不知道怎么复审延期?电子证书怎么弄? 证书过期了不知道怎么复审延期?别慌,很多人在拿到【澳洲水电工证考试】的电子证书后,一不小心就忽略了复审时间,结果证书失效,工作受阻,甚至被单位追责。今天就从【澳洲水电工证考试… · 2026/11/7 0:00:41

电工作业提示版通过率揭秘:怎么考才能一次过?
电工作业提示版通过率揭秘:怎么考才能一次过?

电工作业提示版通过率揭秘:怎么考才能一次过? 怕考不过白交培训费?别急,今天我就从驻马店应届工程类毕业生的视角,带你全面了解电工作业提示版的考试流程、备考要点和真实通过率,帮你少走弯路、提高一次通过率。… · 2026/11/7 0:00:41

电工证年审报名千万别踩坑 外省证转过来要搞清这几点
电工证年审报名千万别踩坑 外省证转过来要搞清这几点

电工证年审报名千万别踩坑 外省证转过来要搞清这几点 之前考的证在外省能不能转过来?这个问题是很多电工从业者最关心的,特别是像你这样在商丘从事公路工程的人员,经常需要跨省流动,证书的 有效性 和 可迁移性… · 2026/11/7 0:00:41

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/6 10:29:23

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码