最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之Spring注解開發(fā)案例詳解

 更新時間:2021年07月27日 11:21:12   作者:雪瀟瀟  
這篇文章主要介紹了Java之Spring注解開發(fā)案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
  • 在Spring4之后,要使用注解開發(fā),必須要保證aop的包導(dǎo)入了

在這里插入圖片描述

  • 使用注解需要導(dǎo)入context約束,增加注解的支持!
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       https://www.springframework.org/schema/beans/spring-beans.xsd
                           http://www.springframework.org/schema/context
       https://www.springframework.org/schema/context/spring-context.xsd">
    <!--指定要掃描的包,這個包下的注解就會生效-->
    <context:component-scan base-package="com.example.springannotation" />
    <context:annotation-config></context:annotation-config>
    <!-- <bean id="cat" class="com.example.springannotation.dao.Cat"/>
    <bean id="people" class="com.example.springannotation.dao.People"/>-->
</beans>

注解的支持:

//@Component 等價于<bean id="pepople" class="com.example.springannotation.dao.People" />
@Component
public class People {
    @Autowired(required = false)
    @Value("1235") //相當(dāng)<property name="id " value="1235"/>
    private int id;
    @Autowired(required = false)
    private String name ="ming";
    
    @Value("qing") //相當(dāng)<property name="name " value="qing"/>
    public void setName(@Nullable String name) {
        this.name = name;
    }
}

衍生的注解
@Component有幾個衍生注解,我們在web開發(fā)中,會按照mvc三層架構(gòu)分層!

  • dao 【@Repository】
  • service【@Service】
  • controller【@Controler】

這四個注解功能都是一樣的,都是代表將某個類注冊到Spring中,裝配Bean。

@Scope("singleton") //singleton:標(biāo)識單例模式,prototype:標(biāo)識原型模式 、request:標(biāo)識請求模式、session:標(biāo)識會話模式

xml 與注解:

  • xml更加萬能,適用于任何場合!維護(hù)簡單方便。注解不是自己類使用不了,維護(hù)相對復(fù)雜!

xml與注解最佳實踐:

  • xml 用來管理bean;
  • 注解只負(fù)責(zé)完成屬性的注入;
  • 我們在使用的過程中,只需要注意一個問題:必須讓注解生效,就需要開啟注解的支持
<!--指定要掃描的包,這個包下的注解就會生效-->
    <context:component-scan base-package="com.example.springannotation" />
    <context:annotation-config></context:annotation-config>

JAVA的方式配置Spring

  • @Configuration 這個也會spring容器托管,注冊到容器中,因為他本來就是一個Component,
  • @Configuration代表這是一個配置類,就和我們之前看的beans.xml
// 配置類 代替 beans.xml
import com.example.springannotation.dao.Cat;
import com.example.springannotation.dao.People;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

@Configuration
@ComponentScan("com.example.springannotation")
@Import(WwConfig.class)  //引入第二個配置
public class AppConfig {
    //注朋一個bean 相當(dāng)于當(dāng)于我們之前寫的一個bean標(biāo)簽
    //這個方法的名字,就相當(dāng)于bean標(biāo)簽中的id屬性
    //這個方法的返回價,就和當(dāng)了bean標(biāo)簽中的class屬性
    @Bean
    public People getPeople(){
        return new People();
    }

    @Bean
    public Cat getCat(){
        return new Cat();
    }
}

import org.springframework.context.annotation.Configuration;
@Configuration
public class WwConfig {
}
//測試類
import com.example.springannotation.config.AppConfig;
import com.example.springannotation.dao.People;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@SpringBootTest
class SpringannotationApplicationTests {
    @Test
    void contextLoads() {
        如果完全使用了配置類方式做,
        // 我們就只能通過 AnnotationConfig 上下文來獲取容器,通過配置類的class對象加載!
        ApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class);
        People people = (People) context.getBean("getPeople");
        System.out.println(people.toString());
    }
}

到此這篇關(guān)于Java之Spring注解開發(fā)案例詳解的文章就介紹到這了,更多相關(guān)Java之Spring注解開發(fā)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot緩存抽象@Cacheable與緩存管理器配置方法

    SpringBoot緩存抽象@Cacheable與緩存管理器配置方法

    SpringBoot的緩存抽象通過@Cacheable注解和CacheManager接口,提供了靈活高效的緩存管理,本文詳細(xì)介紹了@Cacheable的使用技巧、緩存管理器配置方法、自定義鍵生成策略以及緩存同步與失效機制,幫助開發(fā)者構(gòu)建高效的緩存策略,優(yōu)化應(yīng)用性能,感興趣的朋友一起看看吧
    2025-03-03
  • 一文帶你了解Java設(shè)計模式之原型模式

    一文帶你了解Java設(shè)計模式之原型模式

    原型模式其實就是從一個對象在創(chuàng)建另外一個可定制的對象,不需要知道任何創(chuàng)建的細(xì)節(jié)。本文就來通過示例為大家詳細(xì)聊聊原型模式,需要的可以參考一下
    2022-09-09
  • 快速定位Java 內(nèi)存OOM的問題

    快速定位Java 內(nèi)存OOM的問題

    這篇文章主要介紹了快速定位Java 內(nèi)存OOM的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • 使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常)

    使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常)

    這篇文章主要介紹了使用mybatis-plus的insert方法遇到的問題及解決方法(添加時id值不存在異常),本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Java源碼解析之接口Collection

    Java源碼解析之接口Collection

    Collection是List、Queue和set的超集,它直接繼承于Iterable,也就是說所有的Collection集合類都支持foreach循環(huán).除此之外呢,Collection也是面向接口編程的典范,它可以在多種實現(xiàn)類間轉(zhuǎn)換,這就是面向?qū)ο缶幊痰膮柡χ?接下來就隨著小編一起去看看吧,需要的朋友可以參考下
    2021-05-05
  • IDEA 2020.2 +Gradle 6.6.1 + Spring Boot 2.3.4 創(chuàng)建多模塊項目的超詳細(xì)教程

    IDEA 2020.2 +Gradle 6.6.1 + Spring Boot 2.3.4 創(chuàng)建多模塊項目的超詳細(xì)教程

    這篇文章主要介紹了IDEA 2020.2 +Gradle 6.6.1 + Spring Boot 2.3.4 創(chuàng)建多模塊項目的教程,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-09-09
  • spring-boot整合Micrometer+Prometheus的詳細(xì)過程

    spring-boot整合Micrometer+Prometheus的詳細(xì)過程

    這篇文章主要介紹了springboot整合Micrometer+Prometheus的詳細(xì)過程,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2024-05-05
  • Java8新特性之lambda的作用_動力節(jié)點Java學(xué)院整理

    Java8新特性之lambda的作用_動力節(jié)點Java學(xué)院整理

    我們期待了很久lambda為java帶來閉包的概念,但是如果我們不在集合中使用它的話,就損失了很大價值?,F(xiàn)有接口遷移成為lambda風(fēng)格的問題已經(jīng)通過default methods解決了,在這篇文章將深入解析Java集合里面的批量數(shù)據(jù)操作解開lambda最強作用的神秘面紗。
    2017-06-06
  • JS+Struts2多文件上傳實例詳解

    JS+Struts2多文件上傳實例詳解

    這篇文章主要為大家詳細(xì)介紹了JS+Struts2多文件上傳實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • java 多態(tài)性詳解及常見面試題

    java 多態(tài)性詳解及常見面試題

    這篇文章主要介紹了java 多態(tài)性詳解及常見面試題的相關(guān)資料,這里對java 的多態(tài)性做了資料整理,并列舉常見的關(guān)于多態(tài)性的面試題,需要的朋友可以參考下
    2016-11-11

最新評論

广宗县| 年辖:市辖区| 锡林郭勒盟| 大丰市| 安多县| 六安市| 诏安县| 新化县| 吉安市| 蓝山县| 江阴市| 平乡县| 温宿县| 永济市| 江城| 扎兰屯市| 河曲县| 留坝县| 德令哈市| 汾西县| 凯里市| 章丘市| 成安县| 云龙县| 鱼台县| 北碚区| 新绛县| 东方市| 外汇| 达尔| 南华县| 卢湾区| 六盘水市| 颍上县| 澄迈县| 武乡县| 泉州市| 平凉市| 双鸭山市| 淳化县| 邢台市|