Spring Boot集成六大常用中间件,附集成源码,亲测有效

news/2024/7/25 2:35:48/文章来源:https://blog.csdn.net/guorui_java/article/details/139252746

在这里插入图片描述

目录

      • 万字论文,从0到1,只需1小时
      • 获取途径
      • 1、Spring Boot如何集成Spring Data JPA?
      • 2、Spring Boot如何集成Spring Security?
      • 3、Spring Boot如何集成Redis?
      • 4、Spring Boot如何集成RabbitMQ?
      • 5、Spring Boot如何集成Apache Kafka?
      • 6、Spring Boot如何集成Elasticsearch?

嗨,你好呀,我是哪吒。

面试的时候总是被问到一些中间件的使用,比如Redis、Kafka、Elasticsearch等。很多小伙伴回答的都不尽如人意,自己虽然用过、或者照着视频敲过,也实现过,但总感觉差了点什么。

因为你没有进行系统的总结过,对比过。

下面就针对几个常见的中间件(Spring Data JPA、Spring Security、Redis、RabbitMQ、Kafka、Elasticsearch),简述一下它们与SpringBoot的集成方案,从0到1,从yml配置到调用API实现代码逻辑,做到真正意义上的即插即用。

万字论文,从0到1,只需1小时

通过OpenAI5月14日1点发布的最新大模型ChatGPT4o:

  • 1小时即可完成万字论文的编写
  • 通过GPT定制的降重大模型“中文论文降重”,2小时即可完成一篇优质的、查重率较低的万字论文。

在这里插入图片描述
在ChatGPT4o对话框中输入:写一个Spring Boot+Vue实现的车位管理系统的论文大纲,并对其具体章节进行详细描述。

1小时即可完成一份1万字论文的编写。

在这里插入图片描述

在这里插入图片描述

获取途径

现在商家有活动,仅仅需要24.9!!!!

现在有优惠:

👉 周卡优惠码是1024,会优惠5元(推荐人写:1024)

👉 半月卡、月卡、季卡优惠码是102410,会优惠10元。(推荐人写:102410)

邮箱写自己的邮箱!!!!

👉获取途径,网址在下面了:ChatGPT4o,也可以私信哪吒,备注CSDN AI

在这里插入图片描述

1、Spring Boot如何集成Spring Data JPA?

Spring Data JPA 是 Spring 框架的一个模块,它简化了与 Java 持久化 API (JPA) 的交互,提供了一种声明式的数据访问。在 Spring Boot 应用中集成 Spring Data JPA 可以提高数据访问层的效率。以下是集成 Spring Data JPA 的基本步骤:

(1)添加依赖

首先,需要在项目的 pom.xml(Maven)或 build.gradle(Gradle)文件中添加 Spring Data JPA 的依赖。

对于 Maven:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

对于 Gradle:

dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-jpa'// 其他依赖
}

(2)配置数据源

在 application.properties 或 application.yml 文件中配置数据库连接信息。

# application.yml
spring:datasource:url: jdbc:mysql://localhost:3306/your_databaseusername: your_usernamepassword: your_passworddriver-class-name: com.mysql.cj.jdbc.Driver

(3)配置 JPA

同样在配置文件中,配置 JPA 的相关属性,如实体扫描位置、数据库方言等。

# application.properties
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=true
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

(4)实体类

创建 JPA 实体类,使用 JPA 注解来映射数据库表和列。

@Entity
public class User {@Id@GeneratedValue(strategy = GenerationType.IDENTITY)private Long id;private String name;// getters and setters
}

(5)仓库接口

创建一个继承 JpaRepository 的接口,Spring Data JPA 会根据接口方法名称自动实现数据访问逻辑。

public interface UserRepository extends JpaRepository<User, Long> {// 可以添加自定义查询方法List<User> findByName(String name);
}

(6)使用仓库

在服务层注入 UserRepository 并使用它来执行数据操作。

@Service
public class UserService {private final UserRepository userRepository;@Autowiredpublic UserService(UserRepository userRepository) {this.userRepository = userRepository;}public List<User> findAllUsers() {return userRepository.findAll();}public List<User> findUsersByName(String name) {return userRepository.findByName(name);}// 其他业务方法
}

(7)启动类

确保你的 Spring Boot 启动类上有 @SpringBootApplication 注解,这样 Spring Boot 才能自动扫描并加载配置。

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

完成以上步骤后,你的 Spring Boot 应用就可以使用 Spring Data JPA 进行数据库操作了。Spring Data JPA 提供了大量简化 CRUD 操作的方法,同时也支持通过方法名定义查询,极大地提高了开发效率。

2、Spring Boot如何集成Spring Security?

Spring Security 是一个功能强大且可高度定制的身份验证和访问控制框架。在 Spring Boot 应用中集成 Spring Security 可以提供安全的用户认证和授权机制。以下是集成 Spring Security 的基本步骤:

(1)添加依赖

首先,在项目的 pom.xml(Maven)或 build.gradle(Gradle)文件中添加 Spring Security 的依赖。

对于 Maven:

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

对于 Gradle:

dependencies {implementation 'org.springframework.boot:spring-boot-starter-security'// 其他依赖
}

(2)配置 Spring Security

创建一个配置类,继承 WebSecurityConfigurerAdapter 并重写相应的方法来定义安全策略。

@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {@Overrideprotected void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/").permitAll()  // 允许所有用户访问首页.anyRequest().authenticated()    // 其他所有请求需要认证.and().formLogin().loginPage("/login")            // 定制登录页.permitAll().and().logout().permitAll();}// 可以添加更多的安全配置
}

(3)创建登录页

Spring Security 会根据 configure(HttpSecurity http) 方法中定义的 loginPage 路径来寻找登录页。你可以创建一个自定义的登录页,或者使用 Spring Boot 默认提供的登录页。

(4)用户认证

Spring Security 支持多种用户认证方式,包括内存数据库、JDBC 数据库、LDAP 等。以下是使用内存数据库进行用户认证的示例:

@Autowired
public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {auth.inMemoryAuthentication().withUser("user").password(passwordEncoder().encode("password")).roles("USER").and().withUser("admin").password(passwordEncoder().encode("admin")).roles("USER", "ADMIN");
}@Bean
public PasswordEncoder passwordEncoder() {return new BCryptPasswordEncoder();
}

(5)启动类

确保你的 Spring Boot 启动类上有 @SpringBootApplication 注解,这样 Spring Boot 才能自动扫描并加载配置。

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

(6)自定义安全配置

根据需要,你可以添加更多的安全配置,如密码策略、记住我功能、CORS 过滤器、自定义权限验证等。

(7)测试

启动应用并访问受保护的资源,以确保安全配置按预期工作。

通过以上步骤,你可以在 Spring Boot 应用中集成 Spring Security,实现用户认证和授权。Spring Security 提供了灵活的扩展点,允许你根据应用的具体需求定制安全策略。

3、Spring Boot如何集成Redis?

在Spring Boot中集成Redis是一个相对简单的过程,主要得益于Spring Boot对各种存储解决方案的自动配置支持。

以下是集成Redis的基本步骤:

(1)添加依赖

首先,需要在项目的pom.xml文件中添加Spring Boot对Redis支持的依赖。对于使用Spring Data Redis的项目,可以添加以下依赖:

<dependencies><!-- Spring Boot Starter Data Redis --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

确保使用的是与Spring Boot版本兼容的Redis依赖版本。

(2)配置Redis服务器

在application.properties或application.yml文件中配置Redis服务器的地址和端口。

spring:redis:host: 127.0.0.1port: 6379password: 123456

(3)自动配置

Spring Boot将自动配置Spring Data Redis连接工厂和操作库,无需手动配置。

(4)使用RedisRepository

如果你使用Spring Data Redis,可以创建一个继承RedisRepository的接口来简化数据访问层的编码。

@Repository
public interface MyRedisRepository extends CrudRepository<MyEntity, String> {// 自定义查询方法...
}

(5)注入RedisTemplate

在需要使用Redis的组件中,注入StringRedisTemplate或RedisTemplate来执行各种操作。

@Service
public class MyService {@Autowiredprivate StringRedisTemplate redisTemplate;public void doSomething() {// 使用redisTemplate操作Redis}
}

(6)使用 lettuce 或 Jedis 客户端

从Spring Boot 2.0开始,默认的Redis客户端是lettuce。如果你更喜欢使用Jedis,可以在application.properties中配置:

spring.redis.lettuce.enabled=false
spring.redis.jedis.enabled=true

(7)配置SSL连接

如果Redis服务器配置了SSL,需要添加相关依赖并配置SSL连接。

(8)集群支持

如果使用Redis集群,需要配置集群节点信息:

spring.redis.cluster.nodes=127.0.0.1:7000,127.0.0.1:7001

(9)测试连接

启动应用程序后,可以通过注入的RedisTemplate或自定义的Repository来测试Redis连接是否成功。

(10)使用Spring Cache

如果你想要利用Redis作为Spring的缓存提供者,可以添加spring-boot-starter-cache依赖,并在配置中启用对Redis的缓存支持。

4、Spring Boot如何集成RabbitMQ?

在Spring Boot中集成RabbitMQ主要涉及以下步骤:

(1)添加依赖

在项目的pom.xml文件中添加RabbitMQ的Spring Boot Starter依赖。

<dependencies><!-- Spring Boot Starter for RabbitMQ --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

(2)配置RabbitMQ

在application.properties或application.yml中配置RabbitMQ服务器的连接信息。

spring:rabbitmq:addresses: 127.0.0.1username: guestpassword: guest

(3)配置ConnectionFactory

如果需要自定义ConnectionFactory,可以创建一个配置类并使用@Configuration注解。在该类中,可以使用@Bean注解来声明一个ConnectionFactory。

@Configuration
public class RabbitMQConfig {@Beanpublic ConnectionFactory connectionFactory() {ConnectionFactory factory = new ConnectionFactory();factory.setHost("127.0.0.1");factory.setUsername("guest");factory.setPassword("guest");return factory;}
}

(4)配置RabbitMQ的Listener容器

使用SimpleMessageListenerContainer作为消息监听容器。在配置类中声明并配置它:

@Configuration
@EnableRabbit
public class RabbitMQConfig extends AbstractRabbitListenerContainerFactory {@Autowiredprivate ConnectionFactory connectionFactory;@Overrideprotected ConnectionFactory getConnectionFactory() {return connectionFactory;}@Beanpublic SimpleMessageListenerContainer container() {SimpleMessageListenerContainer container = new SimpleMessageListenerContainer();container.setConnectionFactory(connectionFactory);container.setQueueNames("myQueue");container.setMessageListener(messageListener());return container;}@Beanpublic MessageListener messageListener() {return new MyMessageListener();}
}

(5)编写消息监听者

创建一个消息监听者,实现MessageListener接口或使用@RabbitListener注解。

public class MyMessageListener implements MessageListener {@Overridepublic void onMessage(Message message, Channel channel) throws Exception {// 处理接收到的消息}
}

或者使用注解:

@Component
public class MyMessageListener {@RabbitListener(queues = "myQueue")public void listen(String message) {// 处理接收到的字符串消息}
}

(6)配置交换机和队列

如果需要,可以配置自定义的交换机和队列,以及它们之间的绑定关系。

@Bean
public Queue myQueue() {return new Queue("myQueue", true);
}@Bean
public FanoutExchange myFanoutExchange() {return new FanoutExchange("myFanoutExchange");
}@Bean
public Binding myBinding() {return BindingBuilder.bind(myQueue()).to(myFanoutExchange());
}

(7)测试连接

启动应用程序后,可以通过发送和接收消息来测试RabbitMQ连接是否成功。

(8)配置管理端点

如果你希望Spring Boot暴露RabbitMQ的健康和信息端点,可以添加以下配置:

management.endpoints.web.exposure.include=health,info,rabbitmq

(9)高级配置

根据需要,可能还需要配置其他高级特性,如消息确认、事务、TTL(消息存活时间)、死信交换机等。

5、Spring Boot如何集成Apache Kafka?

在Spring Boot中集成Apache Kafka主要涉及以下步骤:

(1)添加依赖:

在项目的pom.xml文件中添加Spring for Apache Kafka的依赖。

<dependencies><!-- Spring Boot Starter for Apache Kafka --><dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

(2)配置Kafka连接

在application.properties或application.yml中配置Kafka的连接信息。

spring:kafka:bootstrap-servers: localhost:9092

如果需要配置更多的Kafka属性,比如消费者组、序列化器等,可以继续添加:

spring.kafka.consumer.group-id=my-group
spring.kafka.consumer.key-deserializer=org.apache.kafka.common.serialization.StringDeserializer
spring.kafka.consumer.value-deserializer=org.apache.kafka.common.serialization.StringDeserializer

(3)配置Kafka生产者

创建一个配置类,并通过@EnableKafka注解启用Kafka配置,并定义Kafka生产者的相关配置。

@Configuration
@EnableKafka
public class KafkaProducerConfig {@Beanpublic ProducerFactory<String, String> producerFactory() {// 创建并配置Kafka生产者工厂return new DefaultKafkaProducerFactory<>(producerConfigs());}@Beanpublic Map<String, Object> producerConfigs() {Map<String, Object> props = new HashMap<>();props.put(ProducerConfig.BOOTSTRAP_SERVERS_CONFIG, "localhost:9092");props.put(ProducerConfig.KEY_SERIALIZER_CLASS_CONFIG, StringSerializer.class);props.put(ProducerConfig.VALUE_SERIALIZER_CLASS_CONFIG, StringSerializer.class);return props;}@Beanpublic KafkaTemplate<String, String> kafkaTemplate() {return new KafkaTemplate<>(producerFactory());}
}

(4)编写消息生产者

创建一个生产者,使用KafkaTemplate发送消息。

@Service
public class KafkaProducerService {@Autowiredprivate KafkaTemplate<String, String> kafkaTemplate;public void send(String topic, String message) {kafkaTemplate.send(topic, message);}
}

(5)配置Kafka消费者

创建一个配置类,定义Kafka消费者的相关配置,并启用Kafka监听器。

@Configuration
@EnableKafka
public class KafkaConsumerConfig {@Beanpublic ConcurrentKafkaListenerContainerFactory<String, String> kafkaListenerContainerFactory() {// 创建并配置Kafka监听器容器工厂return new ConcurrentKafkaListenerContainerFactory<>();}@Beanpublic KafkaListenerAnnotationBeanPostProcessor kafkaListenerAnnotationBeanPostProcessor() {return new KafkaListenerAnnotationBeanPostProcessor();}
}

(6)编写消息消费者

创建一个消费者,使用@KafkaListener注解来监听特定主题的消息。

@Component
public class KafkaConsumerService {@KafkaListener(topics = "myTopic", groupId = "my-group")public void listen(String message) {// 处理接收到的消息}
}

(7)测试连接

启动应用程序后,可以通过发送消息到Kafka主题并查看消费者是否能够接收到消息来测试Kafka连接是否成功。

(8)配置管理端点

如果你希望Spring Boot暴露Kafka的健康和信息端点,可以添加以下配置:

management.endpoints.web.exposure.include=health,info,kafka

(9)高级配置

根据需要,可能还需要配置其他高级特性,如事务管理、自定义分区器、自定义序列化器等。

6、Spring Boot如何集成Elasticsearch?

在Spring Boot中集成Elasticsearch主要涉及以下步骤:

(1)添加依赖

在项目的pom.xml文件中添加Spring Data Elasticsearch的依赖。确保你使用的版本与Elasticsearch服务器的版本兼容。

<dependencies><!-- Spring Boot Starter Data Elasticsearch --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency><!-- 其他依赖 -->
</dependencies>

(2)配置Elasticsearch连接:

在application.properties或application.yml中配置Elasticsearch服务器的连接信息。

spring:elasticsearch:rest:uris: "http://localhost:9200"

(3)配置Elasticsearch Repositories:

如果你使用Spring Data Elasticsearch,可以创建一个继承ElasticsearchRepository的接口来简化数据访问层的编码。

public interface MyElasticsearchRepository extends ElasticsearchRepository<MyEntity, String> {// 自定义查询方法...
}

(4)配置Elasticsearch客户端

如果需要自定义Elasticsearch客户端,可以创建一个配置类并使用@Configuration注解。在该类中,可以使用@Bean注解来声明一个RestHighLevelClient。

@Configuration
public class ElasticsearchConfig {@Beanpublic RestHighLevelClient elasticsearchClient() {final HttpClient httpClient = HttpClientBuilder.create().build();final HttpHost httpHost = new HttpHost("localhost", 9200, "http");return new RestHighLevelClient(httpClient, RestClientBuilder.HttpClientConfigCallback(), Collections.singletonList(httpHost));}
}

(5)编写实体类映射

定义实体类,并使用注解标注实体类属性以映射到Elasticsearch的索引字段。

@Document(indexName = "my_index")
public class MyEntity {@Idprivate String id;@Field(type = FieldType.Text)private String text;// 其他字段和getter/setter
}

(6)使用ElasticsearchRepository

注入ElasticsearchRepository并在业务逻辑中使用它进行CRUD操作。

@Service
public class MyEntityService {@Autowiredprivate MyElasticsearchRepository repository;public void save(MyEntity entity) {repository.save(entity);}public List<MyEntity> findAll() {return repository.findAll();}// 其他业务逻辑...
}

(7)测试连接:

启动应用程序后,可以通过发送查询到Elasticsearch并检查返回的数据来测试Elasticsearch连接是否成功。

(8)配置Elasticsearch索引:

根据需要,可能还需要配置Elasticsearch的索引设置,如分片、副本、映射等。

(9)高级配置:

根据需要,可能还需要配置其他高级特性,如自定义分析器、索引刷新间隔等。


3万字80道Java经典面试题总结(2024修订版)- Java基础篇

2 万字 42 道Java经典面试题总结(2024修订版)- Java集合篇

4 万字 102 道Java经典面试题总结(2024修订版)- 多线程篇

10万字208道Java经典面试题总结(2024修订版)- SSM篇


🏆文章收录于:100天精通Java从入门到就业

全网最细Java零基础手把手入门教程,系列课程包括:Java基础、Java8新特性、Java集合、高并发、性能优化等,适合零基础和进阶提升的同学。

🏆哪吒多年工作总结:Java学习路线总结,搬砖工逆袭Java架构师

华为OD机试 2023B卷题库疯狂收录中,刷题点这里

刷的越多,抽中的概率越大,每一题都有详细的答题思路、详细的代码注释、样例测试,发现新题目,随时更新,全天CSDN在线答疑。

点击下方名片,回复1024,获取《10万字208道Java经典面试题总结(2024修订版).pdf 》

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++】C++11(一)

C11是一次里程碑式的更新&#xff0c;我们一起来看一看~ 目录 列表初始化&#xff1a;{ }初始化&#xff1a;std::initializer_list&#xff1a; 声明&#xff1a;auto&#xff1a;decltype&#xff1a; STL的一些变化&#xff1a; 列表初始化&#xff1a; { }初始化&#xf…

云计算期末复习(2)

MapReduce 包含Google MapReduce基本构架、Hadoop MapReduce基本构架 作业&#xff08;问答题&#xff09; &#xff08;1&#xff09;预习论文The Google File System&#xff0c;总结和分析GFS主要特点。 GFS的主要特点包括&#xff1a; 1. 高可靠性和容错性&#xff1a;G…

政府鼓励社会力量建设气膜体育场馆—轻空间

2023年12月1日&#xff0c;国家体育安全总局发布的《关于政协第十四届全国委员会第一次会议第00374号&#xff08;文体宣传类020号&#xff09;提案答复的函》中指出&#xff0c;2016年和2020年国务院发布的文件中均涉及推动气膜场馆建设及完善装配式建筑相关政策。下一步&…

炸裂!AI五分钟模仿爆款IP故事,涨粉速度太绝了!

‍ ‍大家好&#xff0c;我是向阳。 今天我要分享一个利用AI技术模仿爆款账号的小技巧&#xff0c;帮助大家迅速增加粉丝。这个方法简单实用&#xff0c;尤其适用于副业和本地生活领域。接下来&#xff0c;我将为大家详细讲解操作步骤。让我们开始吧。 副业赚钱&#xff1a;模…

2024年03月 Python(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

Python等级考试(1~6级)全部真题・点这里 一、单选题(共25题,共50分) 第1题 运行如下代码,若输入整数3,则最终输出的结果为?( ) def f(x):if x==1:s=1else:s

基于 IP 的 DDOS 攻击实验

介绍 基于IP的分布式拒绝服务&#xff08;Distributed Denial of Service, DDoS&#xff09;攻击是一种利用大量受控设备&#xff08;通常是僵尸网络&#xff09;向目标系统发送大量请求或数据包&#xff0c;以耗尽目标系统的资源&#xff0c;导致其无法正常提供服务的攻击方式…

[集群聊天服务器]----(十)Nginx的tcp负载均衡配置--附带截图

接着上文&#xff0c;我们剖析了服务端和客户端的代码&#xff0c;但是单台服务器的并发量是有限的&#xff0c;面对并发量的要求&#xff0c;我们就需要引入Nginx来实现并发量的要求&#xff0c;将用户请求分发到不同的服务器上分担压力&#xff0c;这就是负载均衡。 选择负…

【国信华源:以专业服务,协助水利厅抵御强暴雨】

5月18日-19日&#xff0c;广西出现入汛以来最强暴雨天气过程&#xff0c;钦州、防城港、北海、南宁等地出现特大暴雨&#xff0c;多地打破降雨量极值。国信华源技术团队积极行动驻守一线&#xff0c;为打好山洪灾害防御的提前战、主动战提供了技术支撑。 5月17日18时&#xff0…

在某云服务器上搭建公网kali linux2.0

前提&#xff1a; 可用的 CVM 实例 挂载一个系统盘之外的盘&#xff0c;安装完成后可卸载&#xff01; 创建实例&#xff0c;安装centos7系统&#xff01; 然后执行fdisk -l看磁盘的情况 在这里我将把镜像写入vdb这块数据盘 非 root 的情况下记得sudo执行以下命令 注意&…

重新安装 Windows 10/11 后如何恢复丢失的数据?

“嗨&#xff0c;我的 Windows 10/11 崩溃了&#xff0c;所以我不得不重新安装它。我使用 USB 可启动驱动器重新安装了操作系统。但是&#xff0c;重新安装后&#xff0c;C 盘上的所有先前文件都丢失了。有什么方法可以恢复丢失的文件吗&#xff1f;” - 孙雯 在大多数情况下&…

Android --- 交换两个布局

准备布局 exchange_out_layout exchange_in_layout <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"andr…

【讲解下Web前端三大主流的框架】

&#x1f3a5;博主&#xff1a;程序员不想YY啊 &#x1f4ab;CSDN优质创作者&#xff0c;CSDN实力新星&#xff0c;CSDN博客专家 &#x1f917;点赞&#x1f388;收藏⭐再看&#x1f4ab;养成习惯 ✨希望本文对您有所裨益&#xff0c;如有不足之处&#xff0c;欢迎在评论区提出…

使用Python类的构造函数和析构函数

1、问题背景 当使用Python类时&#xff0c;可以使用构造函数和析构函数来初始化和清理类实例。构造函数在创建类实例时自动调用&#xff0c;而析构函数在删除类实例时自动调用。 在上面的代码示例中&#xff0c;Person类具有一个构造函数__init__和一个析构函数__del__。构造…

git的使用之筛选文件上传到远程服务器仓库

.gitignore 让本地文件有选择上传到远程服务器仓库 下面是linux内核的.gitignore # # NOTE! Dont add files that are generated in specific # subdirectories here. Add them in the ".gitignore" file # in that subdirectory instead. # # NOTE! Please use gi…

MyBatis多数据源配置与使用,基于ThreadLocal+AOP

导读 MyBatis多数据源配置与使用其一其二1. 引依赖2. 配置文件3. 编写测试代码4. 自定义DynamicDataSource类5. DataSourceConfig配置类6. AOP与ThreadLocal结合7. 引入AOP依赖8. DataSourceContextHolder9. 自定义注解UseDB10. 创建切面类UseDBAspect11. 修改DynamicDataSourc…

解决git克隆项目出现fatal无法访问git clone https://github.com/lvgl/lvgl.git

Windows 11系统 报错 $ git clone https://github.com/lvgl/lvgl.git Cloning into lvgl... fatal: unable to access https://github.com/lvgl/lvgl.git/: Failed to connect to github.com port 443 after 21141 ms: Couldnt connect to server 解决方法 git运行这两段代码…

工业AI的崛起,中国自主创新的新机遇

我们都知道&#xff0c;互联网已经深刻地改变了我们的生活方式&#xff0c;催生了无数的新型商业模式和创新产业&#xff0c;推动了社会的经济变革。中国在互联网领域的发展取得了举世瞩目的成就&#xff0c;建成了全球规模最大、技术领先的5G网络&#xff0c;互联网应用的普及…

眼底项目经验

眼底项目经验 可解释性不足问题眼底项目有多牛逼可解释性不足解法数据、算力、算法都免费送不仅预测当下&#xff0c;还能预测未来和慢病管理整合&#xff0c;形成一个实时健康检测生态 可解释性不足问题 今天下午和腾讯眼底项目人员讨论, 他们不准备做全身性的多疾种, 因为深…

23种设计模式全面总结 | 快速复习(附PDF+MD版本)

本篇文章是对于23种设计模式的一个全面的总结&#xff0c;受限于文章篇幅无法对每个设计模式做到全面的解析&#xff0c;但几乎每个设计模式都提供了案例和类图结构&#xff0c;非常适合快速复习和在学习设计模式之前的全预习把握。 &#x1f4a1;文章的 pdf markdown 版本可通…

分子对接 molecular docking

https://www.sciencedirect.com/science/article/pii/S094471132400374X?via%3Dihub GitHub - beikwx/SailVina: SailVina重构增强版 Molecular docking Download the PTPRB protein structure on the PDB database (RCSB PDB: Homepage). Select the high-resolution PTP…