SpringBoot3筆記

簡介:

springboot整合了springframework,整合了許多配置,讓我們能夠快速創建一個以springframework為基礎的項目。

問題:

到目前為止,你已經學習了多種配置Spring程序的方式。但是無論使用XML、注解、Java配置類還是他們的混合用法,你都會覺得配置文件過于復雜和繁瑣,讓人頭疼!

解決:

SpringBoot 幫我們簡單、快速地創建一個獨立的、生產級別的 Spring 應用(說明:SpringBoot底層是Spring),大多數 SpringBoot 應用只需要編寫少量配置即可快速整合 Spring 平臺以及第三方技術

SpringBoot總結:簡化開發,簡化配置,簡化整合,簡化部署,簡化監控,簡化運維

快速入門

父工程的pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0"

???????? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

???????? xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

??? <modelVersion>4.0.0</modelVersion>

??? <parent>

??????? <!-- springboot(將springboot提供的基礎包做父工程) -->

??????????? <groupId>org.springframework.boot</groupId>

??????????? <artifactId>spring-boot-starter-parent</artifactId>

??????????? <version>3.0.5</version>

??? </parent>

??? <groupId>com.atguigu</groupId>

??? <artifactId>springboot-base-quick-01</artifactId>

??? <version>1.0-SNAPSHOT</version>

??? <!-- 導入對應的啟動器 -->

??? <dependencies>

??????? <dependency>

??????????? <groupId>org.springframework.boot</groupId>

??????????? <artifactId>spring-boot-starter-web</artifactId>

??????? </dependency>

??? </dependencies>

</project>

啟動類

/**

?* 創建一個啟動類

?* 步驟:

?* 在該類上加上@SpringBootApplication代表此類是啟動類

?*??????????????? 該注解的作用:

?*??????????????? ①代表此類事配置類,

?*??????????????? ②自動加載配置 @EnableAutoConfiguration 自動加載其他配置類

?*??????????????? ③@ComponentScan 默認會掃描當前包/子包的注解

?* 在方法中通過 SpringApplication調用run()方法,傳入當前類.class與args

?*??????????????? 作用:

?*??????????????? ①創建ioc容器

?*??????????????? ②啟動內置的web服務

?*??????????????? 當運行該類時,自動創建ioc容器,啟動tomcat服務器軟件

?* 只要在啟動類相同的包或子包下加的注解就會被自動掃描

?*/

@SpringBootApplication//啟動類

public class Main {

??? public static void main(String[] args) {

??????? SpringApplication.run(Main.class,args);//自動創建ioc容器,啟動tomcat服務器軟件

??? }

}

總結:

1. 為什么依賴不需要寫版本?

??? - 每個boot項目都有一個父項目`spring-boot-starter-parent`

??? - parent的父項目是`spring-boot-dependencies`

??? - 父項目 **版本仲裁中心**,把所有常見的jar的依賴版本都聲明好了。

??? - 比如:`mysql-connector-j`

在父工程中已經做了依賴管理,所以在導入依賴時就不需要寫版本了。

2 啟動器(starter)是什么?(整合web開發需要的所有依賴)

(我們的項目需要許多依賴web,servlet jackson等等,啟動器會幫我們自動導好)

Spring Boot提供了一種叫做Starter的概念,它是一組預定義的依賴項集合,旨在簡化Spring應用程序的配置和構建過程。Starter包含了一組相關的依賴項,以便在啟動應用程序時自動引入所需的庫、配置和功能。

主要作用如下:

1. 簡化依賴管理

2. 自動配置

3. 提供約定優于配置

4. 快速啟動和開發應用程序

5. 模塊化和可擴展性

3 @SpringbootApplication的作用

@SpringBootApplication添加到啟動類上,是一個組合注解,他的功效有具體的子注解實現!

@SpringBootApplication注解是Spring Boot框架中的核心注解,它的主要作用是簡化和加速Spring Boot應用程序的配置和啟動過程。

具體而言,@SpringBootApplication注解起到以下幾個主要作用:

1. 自動配置:@SpringBootApplication注解包含了@EnableAutoConfiguration注解,

2. 組件掃描:@SpringBootApplication注解包含了@ComponentScan注解

3. 聲明配置類:@SpringBootApplication注解本身就是一個組合注解,它包含了@Configuration注解

總的來說,@SpringBootApplication注解的主要作用是簡化Spring Boot應用程序的配置和啟動過程。它自動配置應用程序、掃描并加載組件,并將配置和啟動類合二為一,簡化了開發者的工作量,提高了開發效率。

統一配置管理??

?application.properties(統一文件):

?所有的配置文件都統一寫在一個文件中,該文件的名稱為application.properties或application.yml,且該文件必須放在src/main/resources目錄下這是因為src/main/resources目錄是Spring Boot默認的類路徑(classpath),配置文件會被自動加載并可供應用程序訪問。

注意:

①固定的key配置一些參數

②自定義key

代碼舉例:

application.properties文件:

#使用springboot提供的配置,修修改程序的參數,注意:key是固定的

server.servlet.context-path=/boot

#自定義配置

#如何讀取引用配置文件:直接在controller類中聲明接收該值的屬性,然后用@value為其賦值即可

lq.name=劉清

lq.age=19

讀取:

controller類

??? @Value("${lq.name}")

??? private String name;

??? @Value("${lq.age}")

??? private int age;

application.yaml配置介紹和使用

properties方式

web 設置服務器的端口號 項目根路徑

key=value

出現的問題:

因為要為所有框架提供配置參數的位置,又要保證key不重復,所以key就會特別長-----------一般不推薦使用

推薦使用以.yml或.yaml結尾的application文件

yaml方式

#yaml是層次,可以繼承的配置文件格式

#例如:

server:

? port: 8080

? servlet:

??? context-path: /boot

lq:

? info:

??? age;18 #注意:key:空格value

#集合配置

? gfs:

??? - 高圓圓

??? - 范冰冰

??? - 二狗子

#yaml語法:

#? 1. 數據結構用樹形結構呈現,通過縮進來表示層級,

#? 2. 連續的項目(集合)通過減號 ” - ” 來表示

#? 3. 鍵值結構里面的key/value對用冒號 ” : ” 來分隔。

#? 4. YAML配置文件的擴展名是yaml 或 yml

讀取配置文件

讀取方式和properties一致

#YAML格式相對于:properties文件具有更好的層次結構表示、自我描述性、注釋支持、多行文本表示、復雜數據類型支持和更好的可讀性。

批量配置文件讀取

/**

?lq:

?info:

?password:123456?? #注意:key:空格value

?username:liuqing

?gfs:

?- 高圓圓

?- 范冰冰

?- a

?- b

?* 讀取配置文件的

?*?? 方式一:使用@value注解

?*???? 直接在屬性上添加,注意:@value是為組件屬性賦值的,所以該類一定要加入ioc容器

?*???? ①@Value(key必須寫全了)

?*???? ②@Value只能讀取單個值

?*?? 方式二:批量讀取

?*?? 在實體類上添加一個@ConfigurationProperties(prefix = "lq.info")里面填通用的前綴

?*?? 優勢:方便不用一個一個讀取

?*??????? ??????②可以給集合類型賦值

?*/

@Component

@Data

@ConfigurationProperties(prefix = "lq.info")

public class User {

??? private String password;

??? private String username;

??? private List<String> gfs;

}

多環境配置與激活?

1. 屬性文件分離:將應用程序的配置參數分離到不同的屬性文件中,每個環境對應一個屬性文件。例如,可以創建`application-dev.properties``application-prod.properties``application-test.properties`等文件。在這些文件中,可以定義各自環境的配置參數,如數據庫連接信息、端口號等。然后,`application.properties`中通過`spring.profiles.active`屬性指定當前使用的環境。Spring Boot會根據該屬性來加載對應環境的屬性文件,覆蓋默認的配置。

2. YAML配置文件:與屬性文件類似,可以將配置參數分離到不同的YAML文件中,每個環境對應一個文件。例如,可以創建`application-dev.yml`、`application-prod.yml`和`application-test.yml`等文件。在這些文件中,可以使用YAML語法定義各自環境的配置參數。同樣,通過`spring.profiles.active`屬性指定當前的環境,Spring Boot會加載相應的YAML文件。

例如:

其他文件名---------application-key.yml

application-dev.yml(開發)

spring:

? jdbc:

??? datasource:

????? driverClassName: com.mysql.cj.jdbc.Driver

????? url: jdbc:mysql:///dev

????? username: root

????? password: root

application-test.yml(測試)

spring:

? jdbc:

??? datasource:

????? driverClassName: com.mysql.cj.jdbc.Driver

????? url: jdbc:mysql:///test

????? username: root

????? password: root

application-prod.yml(生產)

spring:

? jdbc:

??? datasource:

????? driverClassName: com.mysql.cj.jdbc.Driver

????? url: jdbc:mysql:///prod

????? username: root

????? password: root

環境激活

spring:

? profiles:

??? active: dev(填的是文件名中的key)

注意;

如果設置了spring.profiles.active,并且和application有重疊屬性,以active設置優先。

如果設置了spring.profiles.active,和application無重疊屬性,application設置依然生效!

springmvc整合與配置

web相關配置

1.`server.port`: 指定應用程序的HTTP服務器端口號。

2. `server.servlet.context-path`: 設置應用程序的上下文路徑。這是應用程序在URL中的基本路徑。默認情況下,上下文路徑為空。

3. `spring.mvc.view.prefix`和`spring.mvc.view.suffix`: 這兩個屬性用于配置視圖解析器的前綴和后綴

4. `spring.resources.static-locations`: 配置靜態資源的位置。默認情況下,Spring Boot會將靜態資源放在classpath:/static目錄下(故而一般不用配置)

5. `spring.http.encoding.charset`和`spring.http.encoding.enabled`: 這兩個屬性用于配置HTTP請求和響應的字符編碼。

例如:

#springmvc相關的配置

#一般在server下設置

server:

? port: 80 ?#設置端口號,默認是8080

? servlet:

??? context-path: /boot #設置項目根路徑

spring:

? mvc:

??? view: #視圖解析器配置

????? prefix: /WEB-INF/views/ ?#前綴名

????? suffix: .jsp? #后綴名

? web:

??? resources:

????? static-locations: classpath:/webapp ?#配置靜態資源文件夾

???? ?#一旦配置了,那么默認的靜態資源文件夾就無法訪問了

???? ?#外部訪問金泰資源的時候無需寫靜態資源文件夾(直接寫文件名即可,要帶上后綴)

靜態資源處理:

在springboot中就定義了靜態資源的默認查找路徑

默認的靜態資源路徑為:

* *· classpath:/META-INF/resources/**

**· classpath:/resources/**

**· classpath:/static/**

**· classpath:/public/**

我們只要靜態資源放在這些目錄中任何一個,SpringMVC都會幫我們處理。 我們習慣會把靜態資源放在classpath:/static/ 目錄下。在resources目錄下創建index.html文件

springbootspringmvc中的東西還是正常使用

springmvc的整合還是創建一個配置類實現WebMvcConfigurer

攔截器,全局異常類像之前一樣創建;

druid池與兼容性處理

所需要導入的依賴:

??????????? <!--? web開發的場景啟動器 -->

??????????? <dependency>

??????????????? <groupId>org.springframework.boot</groupId>

??????????????? <artifactId>spring-boot-starter-web</artifactId>

??????????? </dependency>

??????????? <!-- 數據庫相關配置啟動器 jdbctemplate 事務相關-->

??????????? <dependency>

??????????????? <groupId>org.springframework.boot</groupId>

??????????????? <artifactId>spring-boot-starter-jdbc</artifactId>

??????????? </dependency>

??????????? <!-- druid啟動器的依賴? -->

??????????? <dependency>

??????????????? <groupId>com.alibaba</groupId>

??????????????? <artifactId>druid-spring-boot-3-starter</artifactId>

??????????????? <version>1.2.18</version>

??????????? </dependency>

??????????? <!-- 驅動類-->

??????????? <dependency>

??????????????? <groupId>mysql</groupId>

??????????????? <artifactId>mysql-connector-java</artifactId>

??????????????? <version>8.0.28</version>

??????????? </dependency>

??????????? <dependency>

??????????????? <groupId>org.projectlombok</groupId>

??????????????? <artifactId>lombok</artifactId>

??????????????? <version>1.18.28</version>

??????????? </dependency>

所配置的信息:application.yaml文件

spring:

? datasource:

??? type: com.alibaba.druid.pool.DruidDataSource? #使用druid連接池

#??? username: 賬號

#??? password: 密碼? #如果是springboot2整合druid連接池,可使用此信息配置賬號和密碼,springboot3不行

????? # Druid的其他屬性配置 springboot3整合情況下,數據庫連接信息必須在Druid屬性下!

??? druid:

??????? url: jdbc:mysql://localhost:3306/day01

??????? username: root

??????? password: root

??????? driver-class-name: com.mysql.cj.jdbc.Driver

?????? ?# 初始化時建立物理連接的個數

??????? initial-size: 5

??????? # 連接池的最小空閑數量

??????? min-idle: 5

??????? # 連接池最大連接數量

??????? max-active: 20

?????? ?# 獲取連接時最大等待時間,單位毫秒

??????? max-wait: 60000

?????? ?# 申請連接的時候檢測,如果空閑時間大于timeBetweenEvictionRunsMillis,執行validationQuery檢測連接是否有效。

??????? test-while-idle: true

?????? ?# 既作為檢測的間隔時間又作為testWhileIdel執行的依據

??????? time-between-eviction-runs-millis: 60000

??????? # 銷毀線程時檢測當前連接的最后活動時間和當前時間差大于該值時,關閉當前連接(配置連接在池中的最小生存時間)

??????? min-evictable-idle-time-millis: 30000

?????? ?# 用來檢測數據庫連接是否有效的sql 必須是一個查詢語句(oracle中為 select 1 from dual)

??????? validation-query: select 1

??????? # 申請連接時會執行validationQuery檢測連接是否有效,開啟會降低性能,默認為true

??????? test-on-borrow: false

?????? ?# 歸還連接時會執行validationQuery檢測連接是否有效,開啟會降低性能,默認為true

??????? test-on-return: false

??????? # 是否緩存preparedStatement, 也就是PSCache,PSCache對支持游標的數據庫性能提升巨大,比如說oracle,在mysql下建議關閉。

??????? pool-prepared-statements: false

??????? # 要啟用PSCache,必須配置大于0,當大于0時,poolPreparedStatements自動觸發修改為true。在Druid中,不會存在Oracle下PSCache占用內存過多的問題,可以把這個數值配置大一些,比如說100

??????? max-pool-prepared-statement-per-connection-size: -1

?????? ?# 合并多個DruidDataSource的監控數據

??????? use-global-data-source-stat: true

測試代碼

需求:查詢t_emp表中的所有數據

實體類:Employee略

controller

@Controller

@ResponseBody

@RequestMapping("emp")

public class EmployeeController {

??? @Autowired

??? private JdbcTemplate jdbcTemplate;

??? @GetMapping("list")

??? public List<Employee> list(){

??????? //數據庫

??????? String sql="select * from t_emp";

??????? List<Employee> query = jdbcTemplate.query(sql, new BeanPropertyRowMapper<>(Employee.class));

??????? return query;

??? }

}

出現問題:

通過源碼分析,druid-spring-boot-3-starter目前最新版本是1.2.18,雖然適配了SpringBoot3,但缺少自動裝配的配置文件,

解決

需要手動在resources目錄下創建META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,文件內容如下!

??????????????????? com.alibaba.druid.spring.boot3.autoconfigure.DruidDataSourceAutoConfigure

mybatis整合與配置

mybatis整合步驟:

1. 導入依賴:在您的Spring Boot項目的構建文件(如pom.xml)中添加MyBatis和數據庫驅動的相關依賴。例如,如果使用MySQL數據庫,您需要添加MyBatis和MySQL驅動的依賴。

2. 配置數據源:在`application.properties`或`application.yml`中配置數據庫連接信息,包括數據庫URL、用戶名、密碼、mybatis的功能配置等。

3. 創建實體類:創建與數據庫表對應的實體類。

4. 創建Mapper接口:創建與數據庫表交互的Mapper接口。

5. 創建Mapper接口SQL實現: 可以使用mapperxml文件或者注解方式

6. 創建程序啟動類

7. 注解掃描:在Spring Boot的主應用類上添加`@MapperScan`注解,用于掃描和注冊Mapper接口

8. 使用Mapper接口:在需要使用數據庫操作的地方,通過依賴注入或直接實例化Mapper接口,并調用其中的方法進行數據庫操作。

為什么此時的mapper接口與mapper.xml文件的包結構可以不一樣:

之前是批量掃描,按照包去找對應的mapper接口與mapper.xml文件

在springboot場景下會分開配,會在配置文件中指定mapper.xml文件的配置;而接口的位置,會在啟動類上用注解掃描。

代碼舉例:

Application.xml文件

server:

? address: 0.0.0.0? # 允許所有IP訪問

# druid連接池

spring:

? datasource:

??? type: com.alibaba.druid.pool.DruidDataSource

??? druid:

????? url: jdbc:mysql://localhost:3306/mybatis-example

????? username: root

????? password: abc123LQ

????? driver-class-name: com.mysql.cj.jdbc.Driver

#mybatis-徹底拋棄了mybatis-config.xml文件

#mapperxml文件的配置??? setting的配置???? 別名的設置

mybatis:

? mapper-locations: classpath:/mappers/*.xml? #指定mapper.xml文件的位置

? type-aliases-package: com.atguigu.pojo? #給類起別名的設置

? configuration:

??? map-underscore-to-camel-case: true? #開啟駝峰式

??? auto-mapping-behavior: full?? #自動字段映射

??? log-impl: org.apache.ibatis.logging.slf4j.Slf4jImpl? #日志輸出

實體類Employee:略

Mapper.xml文件(EmployeeMapper.xml):lue

Controller(EmployeeController類):略

啟動類

@SpringBootApplication

@MapperScan("com.atguigu.mapper") //指定mapper接口所在的位置,會自動將所有mapper接口的代理對象放到ioc容器

public class Main {

??? public static void main(String[] args) {

??????? SpringApplication.run(Main.class,args);

??????? System.out.println("hello world!");

??? }

}

aop與tx整合

tx整合:

原來:

???? * 給方法添加事務的操作

???? *??????? 0 導入JDBC的依賴

???? *??????? 1 選定我們需要的事務管理器的實現類,在配置類中創建該類的對象,使用注解的方法將該類添加到ioc

???? *???????????????????????? 注意:該組件需要引入連接池的組件

???? *??????? 2 在配置類上加上 @EnableTransactionManagement 表示開啟事務注解

???? *??????? 3 在我們想要添加事務的方法上加上 @Transactional那么該方法就有事務了

?

現在(使用spring-boot后):

因為添加了jbdc的依賴;而SpringBoot項目會自動配置一個 DataSourceTransactionManager,

所以我們只需在方法(或者類)加上 @Transactional 注解,就自動納入 Spring 的事務管理了,

也不需要在配置類加@EnableTransactionManagement//開啟事務注解的支持

???? * 給方法添加事務的操作

???? *??????? 0 導入JDBC的依賴???

???? *??????? 1 選定我們需要的事務管理器的實現類,在配置類中創建該類的對象,使用注解的方法將該類添加到ioc(可以省略)

???? *???????????????????????? 注意:該組件需要引入連接池的組件

???? *??????? 2 在配置類上加上 @EnableTransactionManagement 表示開啟事務注解(可以省略)

???? *??????? 3 在我們想要添加事務的方法上加上 @Transactional那么該方法就有事務了

實現代碼:

service

@Service

public class EmployeeService {

??? @Autowired

??? private EmployeeMapper employeeMapper;

??? @Transactional

??? public void delete( ){

??????? int rows=employeeMapper.delete(1);

??????? System.out.println("rows = " + rows);

???? ???int i=1/0;

??? }

}

controller

@Controller

@ResponseBody

@RequestMapping("/emp")

public class EmployeeController {

??? @Autowired

??? private EmployeeMapper employeeMapper;

??? @Autowired

??? private EmployeeService employeeService;

??? @GetMapping

??? public List<Employee> query(){

?????? ?employeeService.delete();

??????? return null;

??? }

}

aop整合:

原來:

定義一個增強類(該類要加入ioc),在該類中定義一些方法(通知用@Before/@After…修飾),在用切點表達式指明改通知要作用在那些方法上(execution))

現在:

只需要導入依賴;然后直接使用aop注解即可。

不用在配置類添加@EnableAspectJAutoProxy//開啟aspectj注解

代碼舉例:

@Component

@Aspect

public class LogAdvice {

?? ?@Before("execution(* com..service.*.*(..))")

??? public void before(JoinPoint point){

??????? String simpleName = point.getTarget().getClass().getSimpleName();

??????? String name = point.getSignature().getName();

??????? System.out.println("name = " + name);

??????? System.out.println("simpleName = " + simpleName);

??? }

}

直接測試:成功

Springboot3項目打包和運行

添加打包插件:

> 在Spring Boot項目中添加`spring-boot-maven-plugin`插件是為了支持將項目打包成可執行的可運行jar包。如果不添加`spring-boot-maven-plugin`插件配置,使用常規的`java -jar`命令來運行打包后的Spring Boot項目是無法找到應用程序的入口點,因此導致無法運行。

<!--??? SpringBoot應用打包插件-->

<build>

??? <plugins>

??????? <plugin>

??????????? <groupId>org.springframework.boot</groupId>

??????????? <artifactId>spring-boot-maven-plugin</artifactId>

??????? </plugin>

??? </plugins>

</build>

執行打包:

Clean-package

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/75977.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/75977.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/75977.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek和文心一言的區別

文章目錄 1.開發公司&#xff1a;2.應用場景&#xff1a;3.訓練數據&#xff1a;4.模型架構&#xff1a;5.技術特點&#xff1a;6.語言風格&#xff1a;7.開源性&#xff1a;8.界面與用戶體驗&#xff1a; 1.開發公司&#xff1a; DeepSeek 由杭州深度求索人工智能基礎技術研究…

Windows 10 安裝Mysql 8

安裝準備 下載 MySQL Windows ZIP版&#xff08;無安裝程序&#xff09;&#xff1a; 進入官網&#xff1a;https://dev.mysql.com/downloads/mysql/ 選擇 Windows → 下載 ZIP Archive&#xff0c;例如&#xff1a; mysql-8.0.34-winx64.zip 如果你的電腦沒有安裝 VC Redi…

ARM分揀機vs傳統PLC:實測數據揭示的4倍效率差

在蘇州某新能源汽車零部件倉庫&#xff0c;凌晨3點的分揀線上依然燈火通明。8臺搭載ARM Cortex-A72處理器的智能分揀機正在以每秒3件的速度處理著形狀各異的電池包組件&#xff0c;它們通過MES系統接收訂單信息&#xff0c;自主規劃最優路徑&#xff0c;將不同規格的零部件精準…

使用python訪問mindie部署的vl多模態模型

說明 今天使用mindie1.0部署了qwen2_7b_vl模型&#xff0c;測試過程出現一些問題&#xff0c;這里總結下。 問題1&#xff1a;transformers版本太低 報錯信息&#xff1a; [ERROR] [model_deploy_config.cpp:159] Failed to get vocab size from tokenizer wrapper with ex…

vscode 跳轉失敗之c_cpp_properties.json解析

{"configurations": [{"name": "Linux", // 配置名稱&#xff0c;對應當前平臺&#xff0c;VS Code 中可選"includePath": ["${workspaceFolder}/**", // 包含當前工作區下所有文件夾的頭文件&#xff08;遞歸&…

飛速(FS)解決方案驗證實驗室搬遷升級,賦能客戶技術服務

飛速&#xff08;FS&#xff09;解決方案驗證實驗室近日順利完成搬遷升級&#xff0c;標志著飛速&#xff08;FS&#xff09;在解決方案可行性驗證、質量保障以及定制化需求支持方面邁上新臺階&#xff0c;進一步提升了產品競爭力和客戶信任度。 全新升級的實驗室定位為技術驗證…

安裝kerberos認證的cdh環境

1、服務端安裝 1.1 安裝wget yum -y install wget 由于本地已安裝過wget&#xff0c;所以顯示Nothing to do 1.2 進入 home 目錄 cd /home 1.3 下載centos6.7.iso文件&#xff0c;并掛載 wget https://archive.kernel.org/centos-vault/6.7/isos/x86_64/CentOS-6.7-x86_64…

MySQL基礎 [六] - 內置函數+復合查詢+表的內連和外連

內置函數一般要用select調用 內置函數 日期函數 current_date函數 current_date函數用于獲取當前的日期。如下&#xff1a; current_time函數 current_time函數用于獲取當前的時間。如下&#xff1a; now函數 now函數用于獲取當前的日期時間。如下&#xff1a; date函數 dat…

CS內網滲透 - 如何通過冰蝎 Webshell 上線 Weblogic 服務器到 Cobalt Strike 并繞過殺軟檢測(360、火絨)?

目錄 1. 冰蝎連接上 Weblogic 服務器如何上線到 Cobalt Strike 2. 服務器安裝殺毒工具如何繞過殺軟上線到 Cobalt Strike 2.1 殺軟對 Webshell 命令執行的檢測及繞過 2.2 殺軟對 Cobalt Strike 上線木馬的檢測及繞過 2.3 殺軟對這兩方面的限制及綜合繞過 3. 如何生成免殺…

[ctfshow web入門] web10

前置知識 cookie Cookie是網站存儲在瀏覽器中的小數據片段&#xff0c;用于識別用戶、保持登錄狀態或記住偏好設置。 也就是說&#xff0c;我以會員A的身份登錄了網站&#xff0c;網站會發送一段cookie(會員卡)給我&#xff0c;上面寫著會員卡A&#xff0c;下一次我再訪問&am…

藍橋杯:日期統計

文章目錄 問題描述解法一遞歸解法二&#xff1a;暴力破解 問題描述 首先我們要了解什么是子序列&#xff0c;就是一個序列之中可以忽略元素但是不能改變順序之后獲得的序列就叫做子序列。 如"123"就是"11234"的子序列而不是"11324"的子序列 解法…

藍橋杯 C/C++ 組歷屆真題合集速刷(一)

一、1.單詞分析 - 藍橋云課 &#xff08;模擬、枚舉&#xff09;算法代碼&#xff1a; #include <bits/stdc.h> using namespace std;int main() {string s;cin>>s;unordered_map<char,int> mp;for(auto ch:s){mp[ch];}char result_charz;int max_count0;fo…

重塑知識的引擎:人工智能如何改變知識的生產與傳播

一、引言&#xff1a;知識的邊界正在被人工智能重構 千百年來&#xff0c;人類對于“知識”的獲取方式一直遵循著某種路徑依賴&#xff1a;感知現實 → 歸納總結 → 文字表達 → 教育傳承 → 學術沉淀。這一過程復雜而緩慢&#xff0c;需要經過代際的努力才能實現知識的積累與…

list的底層:

我們之前講解了list&#xff0c;今天我們來看一下list的底層&#xff1a; list底層是一個雙向帶頭循環的鏈表&#xff0c;之前我們學習數據結構的時候&#xff0c;我們就學過。 迭代器的封裝&#xff1a; 我們看這個圖片&#xff0c;我們的鏈表的指針可以達到鏈表的迭代器能力…

遵循IEC62304YY/T0664:確保醫療器械軟件生命周期合規性

一、EC 62304與YY/T 0664的核心定位與關系 IEC 62304&#xff08;IEC 62304&#xff09;是國際通用的醫療器械軟件生命周期管理標準&#xff0c;適用于所有包含軟件的醫療器械&#xff08;如嵌入式軟件、獨立軟件、移動應用等&#xff09;&#xff0c;其核心目標是確保軟件的安…

【next函數python】`next()`函數

在Python中&#xff0c;next()函數結合生成器表達式用于高效地查找序列中第一個符合條件的元素。以下是如何理解和編寫類似代碼的步驟&#xff1a; 1. 生成器表達式 生成器表達式&#xff08;如 (e for e in energy3 if e ! 0)&#xff09;是一種惰性計算的迭代結構。它不會一…

[創業之路-364]:穿透表象:企業投資的深層邏輯與誤區規避

前言&#xff1a; 透過現象看本質 企業一生與人生相似 看企業如同看人 三歲看大&#xff0c;七歲看老 三十年河東&#xff0c;三十年河西 企業也有品行、文化、氣質、性格、賺錢、生命周期與賺錢曲線 投資公司的目的是未來賺錢&#xff0c;賺未來賺錢。投資創業中的企業主要看…

【C++】Stack Queue 仿函數

&#x1f4dd;前言&#xff1a; 這篇文章我們來講講STL中的stack和queue。因為前面我們已經有了string、vector和list的學習基礎&#xff0c;所以這篇文章主要關注一些stack和queue的細節問題&#xff0c;以及了解一下deque&#xff08;縫合怪&#xff09;和priority_queue &am…

[實戰] 天線陣列波束成形原理詳解與仿真實戰(完整代碼)

天線陣列波束成形原理詳解與仿真實戰 1. 引言 在無線通信、雷達和聲學系統中&#xff0c;波束成形&#xff08;Beamforming&#xff09;是一種通過調整天線陣列中各個陣元的信號相位和幅度&#xff0c;將電磁波能量集中在特定方向的技術。其核心目標是通過空間濾波增強目標方…

深圳漫云科技戶外公園實景兒童劇本殺小程序:開啟親子互動新紀元

在親子娛樂需求日益增長的當下&#xff0c;深圳漫云科技推出的戶外公園實景兒童劇本殺小程序&#xff0c;憑借其創新玩法與豐富功能&#xff0c;為親子家庭帶來全新體驗。該小程序融合戶外探險、角色扮演與邏輯推理&#xff0c;不僅滿足孩子好奇心&#xff0c;更提升其思維能力…