網(wǎng)站建設(shè)需要會什么軟件有哪些內(nèi)容seo網(wǎng)站推廣工作內(nèi)容
一、參數(shù)綁定常用注解
-
@RequestParam
:用于將請求參數(shù)綁定到你的方法參數(shù)上。 -
@PathVariable
:用于將路徑變量綁定到你的方法參數(shù)上。 -
@RequestBody
:用于將請求主體綁定到你的方法參數(shù)上,通常用于綁定POST請求的JSON或XML數(shù)據(jù)。 -
@RequestHeader
:用于將請求頭部信息綁定到你的方法參數(shù)上。 -
@CookieValue
:用于將Cookie值綁定到你的方法參數(shù)上。
主要的區(qū)別在于:
-
綁定的位置不同:
@RequestParam
?是請求參數(shù),@PathVariable
?是路徑變量,@RequestBody
?是請求體
二、mybatis關(guān)聯(lián)查詢
1、resultType
作用:將查詢結(jié)果按照SQL列名與實體類屬性名一致性映射到實體類對象中。 場合:常見一些明細記錄的展示,比如用戶購買商品明細,將關(guān)聯(lián)查詢信息全部展示在頁面時,此時可 直接使用resultType將每一條記錄映射到實體類中,在前端頁面遍歷list(list中是實體類)即可。
2、resultMap
使用association和collection完成一對一和一對多高級映射(對結(jié)果有特殊的映射要求)。
3、association
作用:將關(guān)聯(lián)查詢信息映射到一個實體類對象中。 場合:為了方便查詢關(guān)聯(lián)信息可以使用association將關(guān)聯(lián)信息映射為當前對象的一個屬性,比如:查詢 訂單以及關(guān)聯(lián)用戶信息。
4、collection
作用:將關(guān)聯(lián)查詢信息映射到一個list集合中。 場合:為了方便查詢遍歷關(guān)聯(lián)信息可以使用collection將關(guān)聯(lián)信息映射到list集合中,比如:查詢用戶權(quán) 限范圍模塊及模塊下的菜單,可使用collection將模塊映射到模塊list中,將菜單列表映射到模塊對象的 菜單list屬性中,這樣的作的目的也是方便對查詢結(jié)果集進行遍歷查詢。如果使用resultType無法將查詢 結(jié)果映射到list集合中。
5、resultMap的繼承
resultMap標簽可以通過extends屬性來繼承一個已有的或公共的resultMap,避免重復(fù)配置的出現(xiàn),減 少配置量。
<!-- 父resultMap標簽-->
<resultMap id="baseResultMap" type="com.gs.entity.Orders"><id column="id" property="id"/><result column="order_number" property="orderNumber"/><result column="total_price" property="totalPrice"/><result column="status" property="status"/><result column="user_id" property="userId"/>
</resultMap>
<!-- 繼承父resultMap標簽中的配置,避免重復(fù)配置 -->
<resultMap id="subResultMap" type="com.gs.entity.Orders"
extends="baseResultMap"><association property="users" javaType="com.gs.entity.Users"><id column="id" property="id"/><result column="username" property="username"/><result column="password" property="password"/><result column="realname" property="realname"/></association>
</resultMap>
三、Bean對象生命周期(后續(xù)需詳細補充)
-
實例化(Instantiation): Spring容器通過反射或者工廠方法創(chuàng)建Bean的實例。
-
屬性賦值(Populate Properties): 為Bean的屬性設(shè)置值和對其他Bean的引用。
-
初始化(Initialization): 如果Bean實現(xiàn)了BeanNameAware, BeanFactoryAware, ApplicationContextAware等接口,會調(diào)用對應(yīng)的方法。然后,如果BeanPostProcessor被注冊,相應(yīng)的postProcessBeforeInitialization()方法會被調(diào)用。最后,如果Bean實現(xiàn)了InitializingBean接口,其afterPropertiesSet()方法會被調(diào)用;或者,如果Bean使用init-method屬性聲明了初始化方法,這個方法也會被調(diào)用。
-
使用(In use by application): Bean現(xiàn)在可以被應(yīng)用程序使用了。
-
銷毀(Destruction): 當容器關(guān)閉時,如果Bean實現(xiàn)了DisposableBean接口,其destroy()方法會被調(diào)用;或者,如果Bean使用destroy-method屬性聲明了銷毀方法,這個方法也會被調(diào)用。
四、spring boot自動裝配(后續(xù)需詳細補充)
(一)、核心注解
1.??@SpringBootApplication?:這是一個組合注解,包含了 ?@Configuration?、?@EnableAutoConfiguration? 和 ?@ComponentScan?。其中 ?@EnableAutoConfiguration? 是實現(xiàn)自動裝配的關(guān)鍵注解。
springboot是一個腳手架工具,約定大于配置。我們只需要按照springboot的規(guī)范來開發(fā),就能減少很多配置,當需要開發(fā)web項目的時候
@SpringBootApplication(有三個子注解,分比為1、2、3)
? ? ? ? 1:@SpringBootConfiguration ? ?(有一個子注解:Configuaration)
? ? ? ? ? ? ? ? 1.1:@Configuaration ? ?(有一個子注解:Component)
? ? ? ? ? ? ? ? ? ? ? ? 1.1.1:@Component (作用:就是啟動類聲明為bean)
? ? ? ? 2:@EnableAutoConfiguration ? ?(開啟自動注入:有兩個子注解)
? ? ? ? ? ? ? ? 2.1:@AutoConfigurationPackage ?(自動配置包:有一個子注解,import)
? ? ? ? ? ? ? ? ? ? ? ? 2.1.1:@Import({Registrar.class}) ? ? ?(沒有子注解)
? ? ? ? ? ? ? ? 2.2:@Import({AutoConfigurationImportSelector.class}) ? ?(沒有子注解)
? ? ? ? 3:@ComponentScan ?(組件掃描:沒有子注解,作用:包掃描項目包路徑)
在這三個注解中,第一和第三都沒有太大的意思,所以我們主要看第二個注解就好了。在第二個注解中使用了兩個@import注解。就是這兩個注解解釋了自動裝配的含義
(二)、自動配置類
Spring Boot 在啟動時會掃描類路徑下的 ?META-INF/spring.factories? 文件,這個文件中定義了大量的自動配置類。自動配置類通常以 ?XXXAutoConfiguration? 的形式命名。
例如,當引入了 Spring Boot Web 模塊依賴時,會自動加載 ?SpringWebMvcAutoConfiguration? 自動配置類,它會根據(jù)類路徑下是否存在相關(guān)的類(如 ?DispatcherServlet?)來決定是否進行 Web 相關(guān)的配置,如配置視圖解析器、靜態(tài)資源處理等。
三、條件裝配
自動配置類通常使用 ?@Conditional? 注解來進行條件裝配。這些條件可以基于類路徑上是否存在特定的類、系統(tǒng)屬性是否滿足特定條件等。
例如,?@ConditionalOnClass? 注解表示只有當類路徑上存在特定的類時才會進行自動配置。
四、導(dǎo)入其他配置
自動配置類還可以通過 ?@Import? 注解導(dǎo)入其他配置類或組件,進一步擴展自動裝配的功能。
總之,Spring Boot 的自動裝配原理是通過掃描特定的配置文件,加載自動配置類,并根據(jù)條件進行裝配,從而實現(xiàn)了快速、便捷的開發(fā)體驗,減少了大量的手動配置工作。