Spring-Boot学习

学习Spring Boot,应该从哪里开始学起 学习Spring Boot,应该从哪里开始学起记住,学习是一个持续的过程,不要害怕遇到困难和挑战。通过不断的实践和探索,你会逐渐掌握Spring Boot的精髓。 阅读详情

1SpringBoot的概念

什么是SpringBoot

springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目。
约定大于配置的意思是根据构建的项目去猜测大概需要什么配置去自动配置

为什么要学习SpringBoot

spring的缺点:
复杂的配置,
项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。
混乱的依赖管理。
项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本
和其他库不会有冲突,这是一个棘手的问题。并且,一旦选错了依赖的版本,随之而来的就是各种的不兼容
的bug。
spring boot 可以解决上面2个问题

SpringBoot的特点

Spring Boot 特点:
快速开发spring应用的框架
内嵌tomcat和jetty容器,不需要单独安装容器,jar包直接发布一个web应用,简化maven配置,parent这种方式,一站式引入需要的各种依赖
基于注解的零配置思想
和各种流行框架,spring web mvc,mybatis,spring cloud无缝整合
更多细节,大家可以到官网查看。
总结
spring boot 是spring快速开发脚手架,通过约定大于配置,优化了混乱的依赖管理,和复杂的配置,让我们用
java -jar方式,运行启动java web项目

2入门案例

创建一个空的工程
在这里插入图片描述
版本设置好
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
添加依赖
SpringBoot提供了一个名为spring-boot-starter-parent的构件,里面已经对各种常用依赖(并非全部)的版本进
行了管理,我们的项目需要以这个项目为父工程,这样我们就不用操心依赖的版本问题了,需要什么依赖,直接引
入坐标即可!
添加父工程坐标

<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>

添加web启动器
为了让SpringBoot帮我们完成各种自动配置,我们必须引入SpringBoot提供的自动配置依赖,我们称为 启动器 。
因为我们是web项目,这里我们引入web启动器:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>

需要注意的是,我们并没有在这里指定版本信息。因为SpringBoot的父工程已经对版本进行了管理了。
这个时候,我们会发现项目中多出了大量的依赖:在这里插入图片描述
这些都是SpringBoot根据spring-boot-starter-web这个依赖自动引入的,而且所有的版本都已经管理好,不会出
现冲突。
管理jdk版本
默认情况下,maven工程的jdk版本是1.5,而我们开发使用的是1.8,因此这里我们需要修改jdk版本,只需要简单
的添加以下属性即可:

<properties>
<java.version>1.8</java.version>
</properties>

启动类
Spring Boot项目通过main函数即可启动,我们需要创建一个启动类:
在这里插入图片描述

@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

这时,springBoot通过一个内置的Tomcat启动一个web级别的项目
在这里插入图片描述

@RestController
public class HelloController {
@GetMapping("/hello")
public String hello(){
return "hello, spring boot!";
}
}

在这里插入图片描述
在这里插入图片描述
打开页面访问:http://localhost:8080/hello

3. 全注解配置和属性注入

在入门案例中,我们没有任何的配置,就可以实现一个SpringMVC的项目了,快速、高效!
但是有同学会有疑问,如果没有任何的xml,那么我们如果要配置一个Bean该怎么办?比如我们要配置一个数据库
连接池,以前会这么玩:

<!-- 配置连接池 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"
init-method="init" destroy-method="close">
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>

回顾历史
事实上,在Spring3.0开始,Spring官方就已经开始推荐使用java配置来代替传统的xml配置了,我们不妨来回顾一
下Spring的历史:
Spring1.0时代
在此时因为jdk1.5刚刚出来,注解开发并未盛行,因此一切Spring配置都是xml格式,想象一下所有的bean都
用xml配置,细思极恐啊,心疼那个时候的程序员2秒
Spring2.0时代
Spring引入了注解开发,但是因为并不完善,因此并未完全替代xml,此时的程序员往往是把xml与注解进行
结合,貌似我们之前都是这种方式。
Spring3.0及以后
3.0以后Spring的注解已经非常完善了,因此Spring推荐大家使用完全的java配置来代替以前的xml,不过似乎
在国内并未推广盛行。然后当SpringBoot来临,人们才慢慢认识到java配置的优雅。

spring全注解配置

spring全注解配置主要靠java类和一些注解,比较常用的注解有:
@Configuration :声明一个类作为配置类,代替xml文件
@Bean :声明在方法上,将方法的返回值加入Bean容器,代替 标签
@value :属性注入
@PropertySource :指定外部属性文件,
我们接下来用java配置来尝试实现连接池配置:
首先引入Druid连接池依赖

<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.10</version>
</dependency>

创建一个jdbc.properties文件,编写jdbc属性(可以拷贝):

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/lxs
jdbc.username=root
jdbc.password=123

然后编写代码:

@Configuration
@PropertySource("classpath:jdbc.properties")
public class JdbcConfig {
@Value("${jdbc.url}")
String url;
@Value("${jdbc.driverClassName}")
String driverClassName;
@Value("${jdbc.username}")
String username;
@Value("${jdbc.password}")
String password;
@Bean
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setDriverClassName(driverClassName);
dataSource.setUsername(username);
dataSource.setPassword(password);
return dataSource;
}
}

@Configuration :声明我们 JdbcConfig 是一个配置类
@PropertySource :指定属性文件的路径是: classpath:jdbc.properties
通过 @Value 为属性注入值
通过@Bean将 dataSource() 方法声明为一个注册Bean的方法,Spring会自动调用该方法,将方法的返回值
加入Spring容器中。默认的对象名id=方法名,可以通过@Bean(“自定义名字”),来指定新的对象名
然后我们就可以在任意位置通过 @Autowired 注入DataSource了!
我们在 HelloController 中测试:

@RestController
public class HelloController {
@Autowired
private DataSource dataSource;
@GetMapping("hello")
public String hello() {
return "hello, spring boot!" + dataSource;
}
}

然后Debug运行并查看:
在这里插入图片描述

SpringBoot的属性注入

在上面的案例中,我们实验了java配置方式。不过属性注入使用的是@Value注解。这种方式虽然可行,但是不够
强大,因为它只能注入基本类型值。
在SpringBoot中,提供了一种新的属性注入方式,支持各种java基本数据类型及复杂类型的注入。
1)我们新建一个类,用来进行属性注入:

@ConfigurationProperties(prefix = "jdbc")
public class JdbcProperties {
private String url;
private String driverClassName;
private String username;
private String password;
// ... 略
// getters 和 setters
}

在类上通过@ConfigurationProperties注解声明当前类为属性读取类
prefix=“jdbc” 读取属性文件中,前缀为jdbc的值。
在类上定义各个属性,名称必须与属性文件中 jdbc. 后面部分一致
需要注意的是,这里我们并没有指定属性文件的地址,所以我们需要把jdbc.properties名称改为
application.properties,这是SpringBoot默认读取的属性文件名:在这里插入图片描述
2)在JdbcConfig中使用这个属性:

@Configuration
@EnableConfigurationProperties(JdbcProperties.class)
public class JdbcConfig {
@Bean
public DataSource dataSource(JdbcProperties jdbc) {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(jdbc.getUrl());
dataSource.setDriverClassName(jdbc.getDriverClassName());
dataSource.setUsername(jdbc.getUsername());
dataSource.setPassword(jdbc.getPassword());
return dataSource;
}
}

通过 @EnableConfigurationProperties(JdbcProperties.class) 来声明要使用 JdbcProperties 这个类的对
象
然后你可以通过以下方式注入JdbcProperties:
@Autowired注入

@Autowired
private JdbcProperties prop;

构造函数注入

private JdbcProperties prop;
public JdbcConfig(Jdbcproperties prop){
this.prop = prop;
}

声明有@Bean的方法参数注入

@Bean
public Datasource dataSource(JdbcProperties prop){
// ...
}

本例中,我们采用第三种方式。在这里插入图片描述
大家会觉得这种方式似乎更麻烦了,事实上这种方式有更强大的功能,也是SpringBoot推荐的注入方式。两者对比
关系:
在这里插入图片描述
优势:Relaxed binding:松散绑定
不严格要求属性文件中的属性名与成员变量名一致。支持驼峰,中划线,下划线等等转换,甚至支持对
象引导。比如:user.friend.name:代表的是user对象中的friend属性中的name属性,显然friend也是
对象。@value注解就难以完成这样的注入方式。
meta-data support:元数据支持,帮助IDE生成属性提示(写开源框架会用到)。
更优雅的注入
事实上,如果一段属性只有一个Bean需要使用,我们无需将其注入到一个类(JdbcProperties)中。而是直接在需
要的地方声明即可:

@Configuration
public class JdbcConfig {
@Bean
// 声明要注入的属性前缀,SpringBoot会自动把相关属性通过set方法注入到DataSource中
@ConfigurationProperties(prefix = "jdbc")
public DataSource dataSource() {
DruidDataSource dataSource = new DruidDataSource();
return dataSource;
}
}

我们直接把 @ConfigurationProperties(prefix = “jdbc”) 声明在需要使用的 @Bean 的方法上,然后SpringBoot
就会自动调用这个Bean(此处是DataSource)的set方法,然后完成注入。使用的前提是:该类必须有对应属性的
set方法!
我们将jdbc的url改成:/lxs,再次测试:在这里插入图片描述

4. 自动配置原理

通过刚才的案例看到,一个整合了SpringMVC的WEB工程开发,变的无比简单,那些繁杂的配置都消失不见了,这
是如何做到的?
这些都是从springboot启动器开始的
在这里插入图片描述
我们重点关注@SpringBootApplication注解
@SpringBootApplication
点击进入,查看源码:在这里插入图片描述
这里重点的注解有3个:
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan
@SpringBootConfiguration
我们继续点击查看源码:在这里插入图片描述
通过这段我们可以看出,在这个注解上面,又有一个 @Configuration 注解。这个注解的作用就是声明当前类是一
个配置类,然后Spring会自动扫描到添加了 @Configuration 的类,并且读取其中的配置信息。
@ComponentScan
在这里插入图片描述
并没有看到什么特殊的地方。我们查看注释:
在这里插入图片描述
大概的意思:配置组件扫描的指令。提供了类似与 context:component-scan 标签的作用
通过basePackageClasses或者basePackages属性来指定要扫描的包。如果没有指定这些属性,那么将从声
明这个注解的类所在的包开始,扫描包及子包

而我们的@SpringBootApplication注解声明的类就是main函数所在的启动类,因此扫描的包是该类所在包及其子
包。因此,一般启动类会放在一个比较前的包目录中。
@EnableAutoConfiguration
关于这个注解,官网上有一段说明:
第二级的注解 @EnableAutoConfiguration ,告诉SpringBoot基于你所添加的依赖,去“猜测”你想要如何配置
Spring。比如我们引入了 spring-boot-starter-web ,而这个启动器中帮我们添加了 tomcat 、 SpringMVC 的
依赖。此时自动配置就知道你是要开发一个web应用,所以就帮你完成了web及SpringMVC的默认配置了!
默认配置原理
@EnableAutoConfiguration会开启SpringBoot的自动配置,并且根据你引入的依赖来生效对应的默认配置,
springboot如何做到的?
其实在我们的项目中,已经引入了一个依赖:spring-boot-autoconfigure,其中定义了大量自动配置类:
在这里插入图片描述
在这里插入图片描述
非常多,几乎涵盖了现在主流的开源框架,例如:
redis
jms
amqp
jdbc
jackson
mongodb
jpa
solr
elasticsearch
… 等等
我们来看一个我们熟悉的,例如SpringMVC,查看mvc 的自动配置类:
在这里插入图片描述
在这里插入图片描述
我们看到这个类上的4个注解:
@Configuration :声明这个类是一个配置类
@ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class })

这里的条件是OnClass,也就是满足以下类存在:Servlet、DispatcherServlet、WebMvcConfigurer,其中
Servlet只要引入了tomcat依赖自然会有,后两个需要引入SpringMVC才会有。这里就是判断你是否引入了相
关依赖,引入依赖后该条件成立,当前类的配置才会生效!
@ConditionalOnMissingBean(WebMvcConfigurationSupport.class)
这个条件与上面不同,OnMissingBean,是说环境中没有指定的Bean这个才生效。其实这就是自定义配置的
入口,也就是说,如果我们自己配置了一个WebMVCConfigurationSupport的类,那么这个默认配置就会失
效!
在这里插入图片描述
处理器适配器(HandlerAdapter):

在这里插入图片描述
等等
总结
SpringBoot为我们提供了默认配置,而默认配置生效的条件一般有两个:
引入了相关依赖
没有自定义配置类

Java Spring Boot 全面学习指南 通过系统学习官方文档、经典书籍与实战课程,结合开源项目实践,能够快速掌握 Spring Boot 的核心能力。 阅读详情

相关推荐

Spring Boot 学习之路 -- 基础认知

Spring Boot 是在 Spring 的基础上发展而来的全新的开源框架。它是由 Pivotal 团队开发的。开发 Spring Boot 的主要动机是简化部署 Spring 应用程序的配置过程。也就是说,使用 Spring Boot 能够以更简单的、更灵活的方式开发 Spring 应用程序。▪️ Spring Boot 的代码非常少。Spring 的注解驱动编程避免了大量的配置工作,并且 Spring Boot 可以自动创建各种工厂类,程序开发人员直接通过依赖注入就可以获取各类对象。

Fucking Android & Compose & Harmony & Spring Boot ... 1649

Web工程内嵌Tomcat实现jar运行

# Web工程内嵌Tomcat实现jar运行自从Spring boot出来后,他的嵌入式Tomcat,Jetty容器,无需部署WAR包的方式,也是受很开发运维人员的喜爱,但是碰到旧的web项目进行部署,习惯了spring boot启动方式,还是感 觉到有点狗血的,所以如何将web工程改成java -jar xx.jar 方式启动,可以使用Embeded-Tomcat,内嵌入Tomcat来达到我们的...

Harris的博客 2万+

知乎热文 | 如何高效学习Spring Boot?

添加微信:code_7steps,备注“进群”,邀请你加入大牛云集的技术交流群! 关于Spring Boot ,曾经因为项目需求,“临阵磨枪”式的学习了 一下。 但是,那时候自己使用相对简单,就做一些简单的API接口的开发。所以,就在网络上找了一些在线教程,结合看了一些快速入门的博客,把项目给搭建了起来。 最近由于疫情的原因,在家远程办公有了一些空闲时间,所以,就想着抽空把Spring更加细致的学习一遍。在这个过程中发现了一些不错的免费课程,所以来分享一下我关于Spring Boot 的学习思路,.

jakpopc的博客 304

Spring Boot

Spring Boot 1.springboot概念 springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目 。 spring的缺点: 复杂的配置:项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。 混乱的依赖管理:项目的依赖管理非常的繁琐。决定项目里要用哪些库就已经够让人头痛的了,你还要知道这些库的哪个版本和其他库不会有冲突,这是一个棘手的问题。并且,一旦选错了依赖的版本,随之而来的就是各种的不兼容的bug。 spring boot 可以

weixin_44178431的博客 197

Spring Boot 学习和使用

Spring Boot是一款开源的Java Web应用框架,旨在简化Spring应用的初始搭建以及开发过程。Spring Boot通过整合Spring技术栈中的诸多关键组件,为开发者提供了一种快速、简便的Spring应用开发方式。它遵循“约定优于配置”的原则,通过自动配置、起步依赖和内置的Servlet容器,极大地简化了传统Spring应用的配置和部署过程。Spring Boot通过其自动化配置、起步依赖、内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。

cesske的博客 1619

Spring Boot学习记录(一):Spring Boot 基础

SpringBoot是一个简化Spring应用开发的框架,提供了快速创建独立项目、嵌入式服务器、自动配置等特性。本文介绍了开发环境准备(JDK17+、Maven3.3+、IDEA)、创建第一个SpringBoot应用的完整流程(包括Maven配置、控制器编写、接口测试),重点解析了核心机制,还演示了项目打包部署方法,并指导使用Spring Initializer快速初始化项目结构。文中包含具体代码示例和配置说明,适合SpringBoot初学者快速入门。

a3226976的专栏 930

12.微服务与分布式—1.SpringBoot

1. springboot概念 在这一部分,我们主要了解以下3个问题: 什么是SpringBoot 为什么要学习SpringBoot SpringBoot的特点 什么是SpringBoot springboot是spring快速开发脚手架,通过约定大于配置的方式,快速构建和启动spring项目 为什么要学习SpringBoot spring的缺点: 复杂的配置, 项目各种配置是开发时的损耗, 写配置挤占了写应用程序逻辑的时间。 混乱的依赖管理。 项目的依赖管理非常的繁琐。决

不放手,不错过的博客 1035

【spark学习】 spring boot 整合 spark

解压得到以下结构的目录.以下目录对应的是各个版本的hadoop的bin目录。此处是使用的是3.0.0版本。本例子是使用java语言实现的spark学习的案例笔记,整合springboot等相关框架。此类主要用于声明spark的配置,包括spark的运行模式,spark的运行环境等。下载完成后,解压出来到某个路径下。使用本地算力进行计算。创建一个定时任务类,用于测试整合是否成功。输出词频统计结果如下图。主要用于在window系统下的开发学习。:此处的地址在以下的代码中使用到。来获取网盘下载地址.

张小三的博客 2626

springboot用户信息删除(delete方式)

需求:用户信息删除操作 需要源码,请加微信号,进技术交流群,发送springboot102,免费获取此文章源码。 具体步骤: 1. userlist.html 页面内容如下 <!DOCTYPE html> <html lang="en" xmlns:th="http://www.thymeleaf.org"> <head> <me...

鲸鱼姐的专栏 1万+

使用DJL和Spring Boot实现深度学习:Spring Boot机器学习源码实例

借助于Spring Boot的便捷性和DJL的强大功能,我们可以快速搭建一个深度学习应用程序,并进行训练和推理。在上述代码中,我们定义了一个名为"ImageClassifier"的类,它负责加载模型并提供图像分类功能。在上述代码中,我们定义了一个"ImageClassifier"类,它负责加载模型并提供图像分类功能。接下来,我们将创建一个Spring Boot控制器类,以便可以通过HTTP请求调用图像分类功能。接下来,我们将创建一个Spring Boot控制器类,以便可以通过HTTP请求调用图像分类功能。

PzBlockchain的博客 493

深入解析Gerber RS274X文件格式:从基础语法到实战应用

本文深入解析PCB制造的核心标准Gerber RS274X文件格式,详细介绍了其基础语法、坐标系统、功能码以及嵌入式光圈定义等关键特性。通过实战案例演示了如何解析和手写Gerber指令,并总结了常见错误与调试技巧,帮助PCB工程师掌握这一与制造工厂沟通的“通用语言”,确保设计准确无误地转化为实体电路板。

weixin_29252171的博客 94

Spring Boot 入门学习

Spring Cloud 是一系列框架的集合,它构建在 Spring Boot 之上,用于快速构建分布式系统中的各种组件和微服务架构,为开发者提供了一套一站式的解决方案,涵盖了服务治理、配置管理、消息总线、负载均衡、断路器等多个领域Nacos 是一个易于使用的动态服务发现、配置管理和服务管理平台。背景与发展:Nacos 是由阿里巴巴开源的项目,旨在为微服务架构提供服务发现、配置管理和服务治理等功能,帮助开发人员更轻松地构建、管理和扩展微服务应用程序。核心功能服务发现与注册。

2401_88165388的博客 1200

NVIDIA DGX Spark (Ubuntu 24.04) 部署Isaac Sim与Isaac Lab:二进制安装与ROS2集成实战

本文详细介绍了在NVIDIA DGX Spark工作站(Ubuntu 24.04系统)上,通过预编译二进制包稳定部署Isaac Sim与Isaac Lab的完整实战流程。文章重点剖析了二进制安装相较于源码编译和pip安装的优势,有效规避了CUDA、PyTorch等关键组件的版本冲突陷阱,并逐步指导完成环境配置、Isaac Lab集成、Conda环境管理以及ROS2 Jazzy的集成,最终构建出完整的机器人仿真与强化学习开发平台。

kite3的博客 396

Spring Boot学习

而这些,“打印日志”的代码,基本都是一样的,和“从上而下”的线性调用,没有什么直接的业务逻辑关系。在很多时候,我们接触到一个新的技术的时候,最开始,肯定是被这些技术涉及到的术语、词汇所困扰,不明白这些技术术语词汇的定义、概念、含义,没有这些做根基,就很难做到掌握和学习这个技术,并达到融汇贯通的程度。所以,学习 Spring Boot ,首先就要从宏观的层面上,去了解这个技术它的背景知识、运用场景、发展渊源,演进历史,这一块,可以通过在网络上搜索到大量的知识介绍。业务逻辑层类中,需要调用数据访问层类的方法。

dawsdwd的博客 1889

深入分析RAG知识库多模态数据预处理

多模态企业数据预处理是构建高质量RAG知识库的关键环节。本文详解了处理流程:1)文档格式识别与路由;2)多模态内容提取(文本、图像、音视频);3)结构解析与语义重建;4)数据清洗与增强;5)智能分块(强调语义完整性);6)元数据注入。推荐使用开源工具如PaddleOCR、Whisper、BLIP-2等,或商业API处理复杂场景,最终生成带丰富元数据的结构化内容,为后续向量化检索奠定基础。

qq_35354529的博客 1379

Word中 Go to endnote 出现闪退问题解决办法

Word中 Go to endnote 出现闪退问题解决办法

努力努力努力 1万+

学习spring boot

学习spring boot Manning.Spring.Boot.in.Action.2015.12.epub Manning.Spring.Boot.in.Action.2015.12.mobi Manning.Spring.Boot.in.Action.2015.12.pdf Spring Boot Cookbook - Alex Antonov.epub Spri

716

手把手教你用Verilog实现MDIO控制器(附完整VHDL代码对比)

本文详细介绍了如何使用Verilog实现MDIO控制器,并提供了与VHDL实现的深度对比。通过解析MDIO协议核心要点,展示Verilog状态机架构设计和关键时序控制逻辑,同时对比VHDL在信号声明、状态机实现和双向端口处理上的差异。适用于以太网硬件设计开发者,帮助掌握MDIO控制器自主实现能力。

weixin_30682415的博客 422

学习Spring boot 的一些心得

如果项目需要与数据库进行交互或者处理数据对象,那么需要定义相应的实体类。实体类通常对应数据库中的表,其成员变量表示表中的列。例如,定义一个名为User@Entity@Id// 省略构造函数、getter和setter方法。

jiangke84的博客 734

使用 IMDb API 获取电影评分和评论的 Python 爬虫

电影是人们娱乐生活中的重要组成部分,随着电影产业的快速发展,观众对电影的评价也越来越多样化。IMDb(互联网电影数据库)作为全球最大的电影评分和评论平台之一,收录了成千上万部电影、电视节目及其相关数据。它提供了一个强大的 API 接口,允许开发者访问电影的评分、评论、演员信息等数据。本文将带你一步一步实现一个 Python 爬虫,使用 IMDb API 获取电影的评分和评论。我们将通过这个爬虫来分析一些热门电影的观众反馈,并可视化分析结果。

2201_76125261的博客 1055

材料带隙预测(图神经网络)(⭐⭐)—— 用晶体图网络预测钙钛矿材料的能带隙,加速光伏材料筛选。技术栈:CGCNN、MEGNet、Materials Project数据集

钙钛矿太阳能电池以其高效率、低成本的优势迅速崛起,但传统“试错法”材料筛选效率极低,严重制约了光伏技术的迭代速度。近年来,基于图神经网络的材料带隙预测方法,特别是晶体图神经网络(CGCNN)和材料图网络(MEGNet),为这一问题提供了革命性的解决方案。本文系统梳理了材料带隙预测从传统计算到深度学习的演进历程,深入剖析了CGCNN与MEGNet的架构设计、数学原理及创新机制,详细阐述了Materials Project数据集的构建、特征工程与处理策略。

2201_76125393的博客 47

如何学习和掌握Spring Boot框架?

通过以上系统化学习路径,结合理论理解与实战演练,可逐步掌握 Spring Boot 的核心技术,并具备构建企业级应用的能力。Spring Boot 是一个基于 Spring 生态的快速开发框架,其核心设计目标是。注解确保数据一致性,注意避免自调用导致的事务失效。

破损的天堂鸟博客 1148

汽车零部件产线实战:C#上位机+YOLO实现螺栓装配到位视觉检测

本项目基于C#上位机+YOLOv8实现汽车零部件产线螺栓装配到位视觉检测,全程贴合产线实际场景,从硬件选型、安装调试,到模型训练、上位机开发,再到项目联调、优化扩展,均提供手把手实操指导,代码可直接复制使用,规避了工业视觉产线检测的高频踩坑点。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1330

Spring boot学习记录

需求:使用Spring boot开发一个web应用,浏览器发起请求 /hello 后,给浏览器返回字符串 “hello world”。浏览器中输入:http://localhost:8080/hello创建一个请求处理类:HelloController浏览器中访问。

lu2925028830的博客 945

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Spring Boot 学习示例教程

Spring Boot 学习示例教程 项目介绍 spring-boot-learning-examples 是一个专注于 Spring Boot 学习的开源项目,旨在通过一系列简单易懂的示例代码,帮助开发者快速掌握 Spring Boot 的核心概念和使用方法。项目包含了多个模块,涵盖了从基础的 Spring Boot 应用到高级的微服务架构,适合不同层次的开发者学习和参考。 项目快速启动 环境准...

gitblog_00196的博客 1173

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Github 上 Star 最多的 Spring Boot 个人开源学习项目

2016年,在一次技术调研的过程中认识到了 Spring Boot ,试用之后便一发不可收拾的爱上它。为了防止学习之后忘记,就在网上连载了Spring Boot 系列文章,没想到这一开始便与 Spring Boot 深度结缘。 近三年的时间写了一百多篇关于 Spring Boot 的文章(包含两个课程),在写文章的过程中将文中的示例项目托管在 Github 上面,随着学习 Spring B...

纯洁的微笑 8253

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: ssm练习项目-记账系统
下一篇: SpringBoot整合SpringMVC--JDBC--mybatis
凌晨里的无聊人
博客等级 码龄8年 2320粉丝 206原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨里的无聊人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值