国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java的一些常用注解及其作用

這篇具有很好參考價(jià)值的文章主要介紹了Java的一些常用注解及其作用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

1、Spring Bean類(lèi)的注解

1.1 @Component

通用的注解,可標(biāo)注任意類(lèi)為 Spring 組件。如果一個(gè) Bean 不知道屬于哪個(gè)層,可以使用@Component 注解標(biāo)注。

1.2 @Repository

對(duì)應(yīng)持久層即 Dao 層,主要用于數(shù)據(jù)庫(kù)相關(guān)操作。

1.3 @Service

對(duì)應(yīng)服務(wù)層,主要涉及一些復(fù)雜的邏輯,需要用到 Dao 層。

1.4 @Controller

對(duì)應(yīng) Spring MVC 控制層,主要用戶(hù)接受用戶(hù)請(qǐng)求并調(diào)用 Service 層返回?cái)?shù)據(jù)給前端頁(yè)面。

1.5@RestController

@RestController = @Controller + @ResponseBody

寫(xiě)這一個(gè)注解就相當(dāng)于寫(xiě)了后面的兩個(gè)注解,在返回值是json串的非常方便,但同時(shí)也會(huì)有一個(gè)問(wèn)題,加了這個(gè)注解就不能返回jsp或者h(yuǎn)tml頁(yè)面,這時(shí)可以通過(guò)返回視圖數(shù)據(jù)的方式來(lái)返回頁(yè)面。

ModelAndView mv = new ModelAndView("index"); 
return mv;

1.6 @Configuration

一般用來(lái)聲明配置類(lèi)。

指示一個(gè)類(lèi)聲明一個(gè)或多個(gè)@Bean方法,并且可以由Spring容器處理,以便在運(yùn)行時(shí)為這些bean生成BeanDefinition和服務(wù)請(qǐng)求。

@Configuration
public class AppConfig {
    @Bean
    public MyBean myBean() {
        // instantiate, configure and return bean ...
    }
}

注意:

1.@Configuration不可以是final類(lèi)型;

2.@Configuration不可以是匿名類(lèi);

3.嵌套的configuration必須是靜態(tài)類(lèi)。

2、注入數(shù)據(jù)注解

2.1 @Autowired

自動(dòng)按照類(lèi)型注入,只要容器中有唯一一個(gè) bean 對(duì)象類(lèi)型和要注入的變量類(lèi)型匹配,就可以注入成功。

如果有多個(gè)類(lèi)型匹配,先匹配類(lèi)型,然后根據(jù)變量名稱(chēng)去對(duì)應(yīng),如果變量名稱(chēng)和 bean 名稱(chēng)相同,就注入。

2.2 @Resource

byName就是變量名去匹配bean的id屬性,而byType則是變量類(lèi)型去匹配bean的class屬性。

<bean id="userService" class="com.test.UserServiceImpl">
</bean> 

@Autowired和@Resource的區(qū)別:

  1. @Autowired注解是Spring提供的,而@Resource注解是J2EE本身提供的;
  2. @Autowird注解默認(rèn)通過(guò)byType方式注入,而@Resource注解默認(rèn)通過(guò)byName方式注入;
  3. @Autowired注解注入的對(duì)象需要在IOC容器中存在,否則需要加上屬性required=false,表示忽略當(dāng) 前要注入的bean,如果有直接注入,沒(méi)有跳過(guò),不會(huì)報(bào)錯(cuò)。

2.3 @Value

用于注入基本類(lèi)型和 String 類(lèi)型的數(shù)據(jù)。

3、請(qǐng)求常用注解

3.1 @RequestMapping

它用于映射客戶(hù)端的訪問(wèn)地址,可以被應(yīng)用于類(lèi)和方法上面。

可以指定請(qǐng)求的類(lèi)型get,post,put,delete

@Controller
@RequestMapping("/index")
public class HelloWorldController {
  @RequestMapping(value = "/hello", method = RequestMethod.GET)
  public String hello() {
    return "/WEB-INF/views/success.jsp";
  }
  @RequestMapping(value = "/world", method = RequestMethod.POST)
  public String world() {
    return "/WEB-INF/views/success.jsp";
  }
}

@RequestMapping 還可以將多個(gè)請(qǐng)求映射到一個(gè)方法上,只需要給 value 來(lái)指定一個(gè)包含多個(gè)路徑的列表。

@Controller
@RequestMapping("/index")
public class HelloWorldController {
  @RequestMapping(value = {"/hello", "/world", "/helloworld"})
  public String hello() {
    return "/WEB-INF/views/success.jsp";
  }
}

3.2 @GetMapping

等價(jià)于@RequestMapping(value="",method=RequestMethod.GET)

3.3 @PostMapping

等價(jià)于@RequestMapping(value="",method=RequestMethod.POST)

3.4 @PutMapping(value="/users/{userId}")

等價(jià)于@RequestMapping(value="/users/{userId}",method=RequestMethod.PUT)

3.5 @DeleteMapping("/users/{userId}")

等價(jià)于@RequestMapping(value="/users/{userId}",method=RequestMethod.DELETE)

4、前后端傳值

4.1 @PathVariable

用于獲取路徑參數(shù),通過(guò) @PathVariable 可以將 URL 中占位符參數(shù)綁定到控制器處理方法的入?yún)⒅小?/p>

RequestMapping("user/get/mac/{macAddress}")
public String getByMacAddress(@PathVariable String macAddress){
//can do something;
}

4.2 @RequestParam

用于controller層,是Spring的注解,用于獲取查詢(xún)參數(shù),解決前臺(tái)參數(shù)名稱(chēng)與后臺(tái)接收參數(shù)變量名稱(chēng)不一致的問(wèn)題。

public String login(@RequestParam(value = "username") final String username,
                    @RequestParam(value = "password",required = false) final String password,
                    @RequestParam(value = "valcode",required = false) final String valcode) {
                    }  

  1. value:參數(shù)名字,即入?yún)⒌恼?qǐng)求參數(shù)名字,如username表示請(qǐng)求的參數(shù)區(qū)中的name為username的參數(shù)的值將傳入;
  2. required:是否必須,默認(rèn)是true,表示請(qǐng)求中一定要有相應(yīng)的參數(shù),否則將報(bào)404錯(cuò)誤碼;
  3. defaultValue:默認(rèn)值,表示如果請(qǐng)求中沒(méi)有同名參數(shù)時(shí)的默認(rèn)值,默認(rèn)值可以是SpEL表達(dá)式,如“#{systemProperties['java.vm.version']}”。

4.3 @Param

用于dao層,是mybatis中的注解。

使得mapper.xml中的參數(shù)與后臺(tái)的參數(shù)對(duì)應(yīng)上,也增強(qiáng)了可讀性。

如果兩者參數(shù)名一致得話(huà),spring會(huì)自動(dòng)進(jìn)行封裝,不一致的時(shí)候就需要手動(dòng)去使其對(duì)應(yīng)上。 即:用注解來(lái)簡(jiǎn)化xml配置的時(shí)候,@Param注解的作用是給參數(shù)命名,參數(shù)命名后就能根據(jù)名字得到參數(shù)值,正確的將參數(shù)傳入sql語(yǔ)句中 。

List<Employee> getAllEmployeeByPage(@Param("page") Integer page, 
                                    @Param("size") Integer size);

5、表相關(guān)注解

5.1 @Entity

聲明一個(gè)類(lèi)對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù)實(shí)體。

@Entity說(shuō)明這個(gè)class是實(shí)體類(lèi),并且使用默認(rèn)的orm規(guī)則,即class名就是數(shù)據(jù)庫(kù)表中表明,class字段名即表中字段名。@Entity注解指明這是一個(gè)實(shí)體Bean。在項(xiàng)目啟動(dòng)時(shí)會(huì)根據(jù)該類(lèi)自動(dòng)生成一張表,表的名稱(chēng)即@Entity注解中name的值,如果不配置name,默認(rèn)表明為類(lèi)名所有的實(shí)體類(lèi)都要有主鍵,@Id注解表示該屬性是一個(gè)主鍵,@GeneratedValue注解表示注解自動(dòng)生成,strategy則表示主鍵的生成策略。

@Data
@Entity(name = "t_book")
public class Book {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;
    @Column(name = "book_name")
    private String name;
    @Column(name = "book_author")
    private String author;
    private Float price;
    @Transient
    private String description;
}

5.2 @Table

@Table注解默認(rèn)情況下只會(huì)完成表和實(shí)體之間的映射,聲明才對(duì)象映射到數(shù)據(jù)庫(kù)的數(shù)據(jù)表,通過(guò)它可以為實(shí)體指定表(table)。

常用屬性:name 指定表 @Table(name = "book")

@Data
@Table(name="book")
public class Book{
    @Id
    private Integer id;
    @Column(name="book_name")
    private String name;
    ...
}

5.3 @Id

聲明一個(gè)字段為主鍵。所有的實(shí)體類(lèi)都要有主鍵,@Id注解表示該屬性是一個(gè)主鍵。

5.4 @Column

聲明字段,可以設(shè)置字段的屬性,字段名、是否為空。

生成的表中字段的名稱(chēng)就是實(shí)體類(lèi)中屬性的名稱(chēng),通過(guò)@Column注解可以定制生成的字段屬性,name表示該屬性對(duì)應(yīng)的數(shù)據(jù)表中字段的名稱(chēng),nullable表示該字段非空。

5.5 @Transient

聲明不需要與數(shù)據(jù)庫(kù)映射的字段,在保存的時(shí)候不需要保存進(jìn)數(shù)據(jù)庫(kù)。

@Transient注解表示在生成數(shù)據(jù)庫(kù)中的表時(shí),該屬性被忽略,即不生成對(duì)應(yīng)的字段。

6、事務(wù)注解@Transactional

@Transactional(rollbackFor = Exception.class)  //這里回滾進(jìn)行定義
public int update(Prdtv prdtv) throws RuntimeException{
    //注意在這里處理業(yè)務(wù)時(shí),不要使用Try ...異常捕獲,否則不回滾
    return prdtvMapper.update(prdtv);
}

@Transactional:事務(wù)注解,注解一般用在可以作用在類(lèi)或者方法上

1.類(lèi)上,表明類(lèi)中所有 public 方法都啟用事務(wù) 2.方法上,最常用的一種 3.接口上,不推薦使用

@Transactional注解只能在拋出RuntimeException或者Error時(shí)才會(huì)觸發(fā)事務(wù)的回滾,常見(jiàn)的非RuntimeException是不會(huì)觸發(fā)事務(wù)的回滾的。但是我們平時(shí)做業(yè)務(wù)處理時(shí),需要捕獲異常,所以可以手動(dòng)拋出RuntimeException異?;蛘咛砑觬ollbackFor = Exception.class(也可以指定相應(yīng)異常)

事務(wù)的隔離級(jí)別:是指若干個(gè)并發(fā)的事務(wù)之間的隔離程度

1. @Transactional(isolation = Isolation.READ_UNCOMMITTED):讀取未提交數(shù)據(jù)(會(huì)出現(xiàn)臟讀,
 不可重復(fù)讀) 基本不使用
 
2. @Transactional(isolation = Isolation.READ_COMMITTED):讀取已提交數(shù)據(jù)(會(huì)出現(xiàn)不可重復(fù)讀和幻讀)
 
3. @Transactional(isolation = Isolation.REPEATABLE_READ):可重復(fù)讀(會(huì)出現(xiàn)幻讀)
 
4. @Transactional(isolation = Isolation.SERIALIZABLE):串行化

7、AOP注解

7.1 @After 在方法執(zhí)行之后執(zhí)行(方法上)

@After("pt()")
public void after(){
}

7.2 @Before 在方法執(zhí)行之前執(zhí)行(方法上)

@Before("pt()")
public void before(){
}

7.3 @Around 在方法執(zhí)行之前與之后執(zhí)行(方法上)

@Around("pt()")
public Object around(ProceedingJoinPoint pjp) throws Throwable {
    Object ret = pjp.proceed();
    return ret;
}

7.4 @AfterReturning當(dāng)前方法作為返回后通知

@AfterReturning(value="pt()",returning = "ret")
public void afterReturning(Object ret) {
}

7.5 @AfterThrowing當(dāng)前方法作為異常后通知

@AfterThrowing(value="pt()",throwing = "t")
public void afterThrowing(Throwable t){
}

@Aspect:聲明一個(gè)切面

@PointCut:聲明切點(diǎn)

@EnableAspectJAutoProxy:開(kāi)啟Spring對(duì)AspectJ代理的支持

8、Lombok

8.1 @Setter

注解在屬性上。為屬性提供 setting 方法。

8.2 @Getter

注解在屬性上。為屬性[歡迎轉(zhuǎn)載聽(tīng)雨的人博客]提供 getting 方法。

8.3 @Data

注解在類(lèi)上。等同于添加如下注解: @Getter/@Setter生成get,set方法 @ToString 生成toString方法 @EqualsAndHashCode 生成equals和hashcode方法 @RequiredArgsConstructor 生成一個(gè)指定名稱(chēng)的靜態(tài)方法

public class Programmer{
    @Getter
    @Setter
    private String name;

    @Setter(AccessLevel.PROTECTED)
    private int age;

    @Getter(AccessLevel.PUBLIC)
    private String language;
}

相當(dāng)于:

public class Programmer{
    private String name;
    private int age;
    private String language;

    public void setName(String name){
        this.name = name;
    }

    public String getName(){
        return name;
    }

    protected void setAge(int age){
        this.age = age;
    }

    public String getLanguage(){
        return language;
    }
}

9、MyBatis中常用注解

9.1 @Insert(sql語(yǔ)句):實(shí)現(xiàn)新增

public interface UserDAO{
  @Options(useGeneratedKeys = true,keyColumn = "uid", keyProperty = "id")
  @Insert("insert into t_user(username,password,gender,birth) values(#{username},#{password},#{gender},#{birth})")
  public void insertUser(User user);
}
  • 設(shè)置@Options屬性u(píng)serGeneratedKeys的值為true,并指定實(shí)例對(duì)象中主鍵的屬性名keyProperty=“id”,以及在數(shù)據(jù)庫(kù)中的字段名keyColumn=“uid”。這樣在user插入數(shù)據(jù)后,userId屬性會(huì)被自動(dòng)賦值

9.2 @Update(sql語(yǔ)句):實(shí)現(xiàn)更新

public interface UserDAO{
  @Update("update t_user set username=#{usernmae},password=#{password}")
  public void updateUser(User user);
}

9.3 @Delete(sql語(yǔ)句):實(shí)現(xiàn)刪除

public interface UserDAO{
  @Delete("delete from t_user where id = #{id}")
  public void deleteUserById(@Param("id") int id);
}

9.4 @Select(sql語(yǔ)句):實(shí)現(xiàn)查詢(xún)

public interface UserDAO{
  @Select("select * from t_user where id = #{id} and username = {#username}")
  public User queryUserbyId(@Param("id") int id,@Param("username") String username);
}

其他MyBatis注解:

@Result(property="實(shí)體類(lèi)屬性的名稱(chēng)",jdbcType=數(shù)據(jù)庫(kù)字段類(lèi)型):實(shí)現(xiàn)結(jié)果集封裝

@Results(column="數(shù)據(jù)庫(kù)字段名",porperty="實(shí)體類(lèi)屬性名",jdbcType="數(shù)據(jù)庫(kù)字段數(shù)據(jù)類(lèi)型"):封裝多個(gè)結(jié)果集(當(dāng)數(shù)據(jù)庫(kù)字段名與實(shí)體類(lèi)對(duì)應(yīng)的屬性名不一致時(shí),可以使用@Results映射來(lái)將其對(duì)應(yīng)起來(lái))

@ResultMap(@Results的id值):實(shí)現(xiàn)引用@Results 定義的封裝

@One:實(shí)現(xiàn)一對(duì)一結(jié)果集封裝

@Many:實(shí)現(xiàn)一對(duì)多結(jié)果集封裝

@CacheNamespace:實(shí)現(xiàn)注解二級(jí)緩存的使用

10、其他

1.@Scope注解默認(rèn)的singleton單例模式。

@Scope注解是springIoc容器中的一個(gè)作用域,在 Spring IoC 容器中具有以下幾種作用域:基本作用域singleton(單例)、prototype(多例),Web 作用域(reqeust、session、globalsession),自定義作用域。

2.Enable注解說(shuō)明*

@EnableAsync: 開(kāi)啟異步方法的支持。

@EnableScheduling: 開(kāi)啟計(jì)劃任務(wù)的支持。

@EnableAspectAutoProxy:開(kāi)啟對(duì)AspectJ自動(dòng)代理的支持

@EnableAsync:開(kāi)啟異步方法的支持

@EnableScheduling:開(kāi)啟計(jì)劃任務(wù)的支持

@EnableWebMvc:開(kāi)啟web MVC的配置支持

@EnableConfigurationProperties:開(kāi)啟對(duì)@ConfigurationProperties注解配置Bean的支持

@EnableJpaRepositories:開(kāi)啟對(duì)SpringData JPA Repository的支持

@EnableTransactionManagement:開(kāi)啟注解式事務(wù)的支持

@EnableCaching:開(kāi)啟注解式的緩存支持文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-790949.html

到了這里,關(guān)于Java的一些常用注解及其作用的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Spring MVC中的一些常用注解

    Spring MVC中的一些常用注解

    目錄 @RequestMapping 實(shí)現(xiàn)路由映射 限制請(qǐng)求方式 @PathVariable 從url中獲取變量的值 更改綁定參數(shù)的名字 @RequestParam 可以傳遞集合? 更改綁定參數(shù)的名字 可修改是否為必傳參數(shù) @RequestBody 獲取請(qǐng)求正文的內(nèi)容? 可修改是否為必傳參數(shù) @RequestPart 可以支持上傳文件 更改綁定參數(shù)的名字

    2024年01月19日
    瀏覽(27)
  • Java中注解的作用是什么?

    Java中注解的作用是什么?

    注解(Annotation)是Java中一種元數(shù)據(jù),它允許開(kāi)發(fā)者在代碼中添加一些附加信息,這些信息可以在編譯時(shí)或運(yùn)行時(shí)被處理。注解為開(kāi)發(fā)人員提供了一種在源代碼中包含元數(shù)據(jù)的方式,這些元數(shù)據(jù)不會(huì)影響程序的邏輯執(zhí)行。Java注解的作用有以下幾個(gè)方面: 提供信息給編譯器:注

    2024年02月16日
    瀏覽(21)
  • 關(guān)于Java注解的一些理解 小結(jié)

    關(guān)于Java注解的一些理解 小結(jié)

    目錄 1. 常用注解和理解 2. 自定義注解 2.1 案例背景 2.2 設(shè)計(jì)思路 3 總結(jié) 注解在我的理解下,就是代碼中的特殊標(biāo)記,這些標(biāo)記可以在 編譯、類(lèi)加載、運(yùn)行時(shí) 被讀取,并執(zhí)行相對(duì)應(yīng)的處理。 可能有些抽象,簡(jiǎn)單來(lái)說(shuō)注解其實(shí)在開(kāi)發(fā)中是非常常見(jiàn)的,比如我們?cè)谑褂酶鞣N框架時(shí)

    2023年04月23日
    瀏覽(18)
  • 【Java】后端開(kāi)發(fā)語(yǔ)言Java和C#,兩者對(duì)比注解和屬性的區(qū)別以及作用

    【Java】后端開(kāi)發(fā)語(yǔ)言Java和C#,兩者對(duì)比注解和屬性的區(qū)別以及作用

    歡迎來(lái)到《小5講堂》 大家好,我是全棧小5。 這是《Java》序列文章,每篇文章將以博主理解的角度展開(kāi)講解, 特別是針對(duì)知識(shí)點(diǎn)的概念進(jìn)行敘說(shuō),大部分文章將會(huì)對(duì)這些概念進(jìn)行實(shí)際例子驗(yàn)證,以此達(dá)到加深對(duì)知識(shí)點(diǎn)的理解和掌握。 溫馨提示:博主能力有限,理解水平有限

    2024年01月16日
    瀏覽(28)
  • 關(guān)于Java中@Transient主鍵的作用的一些介紹

    @Transient 主下面是關(guān)于 @Transient 主鍵的使用方法、代碼案例以及與 transient 的區(qū)別,以及一些實(shí)用場(chǎng)景的詳細(xì)介紹。 在實(shí)體類(lèi)中,通常需要將某些字段標(biāo)記為主鍵,并將其映射到數(shù)據(jù)庫(kù)中的主鍵字段。但是,有時(shí)候我們可能希望某個(gè)字段在實(shí)體類(lèi)中作為主鍵使用,但不

    2024年02月10日
    瀏覽(21)
  • java 常用注解, 常用關(guān)鍵字

    java 常用注解, 常用關(guān)鍵字

    用 @Controller 定義一個(gè)控制器類(lèi) @Controller 用于標(biāo)記在一個(gè)類(lèi)上,使用它標(biāo)記的類(lèi)就是一個(gè)Spring(MVC,BOOT)的 Controller類(lèi),分發(fā)處理器會(huì)掃描使用該注解的類(lèi)的方法,并檢測(cè)該方法是否使用了 @RequestMapping 注解。 @Controller 只是定義了一個(gè)控制器類(lèi),而使用 @RequestMapping 注解的方法

    2024年02月08日
    瀏覽(19)
  • java中常用注解匯總

    1 Maven依賴(lài)?? ? 2 值校驗(yàn) 2.1 @Null注解 被注解的元素必須為null 2.2 @NotNull注解 被注解的元素必須不為null 2.3 @NotBlank注解 驗(yàn)證注解的元素值不為空(不為null、去除首位空格后長(zhǎng)度為0) ,并且類(lèi)型為String。 2.4 @NotEmpty注解 驗(yàn)證注解的元素值不為null且不為空(字符串長(zhǎng)度不為0、集

    2024年02月14日
    瀏覽(20)
  • Java常用注解

    Java常用注解

    友情提醒: 先看文章目錄,大致了解文章知識(shí)點(diǎn)結(jié)構(gòu),點(diǎn)擊文章目錄可直接跳轉(zhuǎn)到文章指定位置。用到的資料都放在文章最末尾了(不過(guò)估計(jì)也沒(méi)人看完這篇文章,太長(zhǎng)了) ①元數(shù)據(jù)概念 :描述數(shù)據(jù)或信息資源等對(duì)象的數(shù)據(jù),其使用目的在于:識(shí)別資源;評(píng)價(jià)資源;追蹤使用

    2024年02月04日
    瀏覽(50)
  • Java jackson常用注解匯總

    提起 jackson ,在日常使用中,由于涉及到各種序列化和反序列化的處理,就不能不提 注解 ,了解注解的常用方式可以極大地方便我們處理序列化,今天分享一些在使用 jackson 中涉及到的注解。 目錄 1.@JsonProperty - 字段命名 2.@JsonPropertyOrder - 字段序列化順序 3.@JsonAlias - 字段別

    2024年02月05日
    瀏覽(20)
  • @Repository注解的作用和用法,以及和@Mapper的區(qū)別

    @Repository注解的作用和用法,以及和@Mapper的區(qū)別

    @Repository是屬于Spring的注解。它用來(lái)標(biāo)注訪問(wèn)層的類(lèi)(Dao層),它表示一個(gè)倉(cāng)庫(kù),主要用于封裝對(duì)于數(shù)據(jù)庫(kù)的訪問(wèn)。其實(shí)現(xiàn)方式與@Component注解相同,只是為了明確類(lèi)的作用而設(shè)立。 即@Repository是@Component注解的一個(gè)派生品,與@Service和@Controller都可以理解為@Component注解的擴(kuò)展。

    2024年02月05日
    瀏覽(38)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包