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

Spring更簡單的存儲方式與獲取方式詳解

 更新時間:2022年06月14日 12:29:13   作者:亞太地區(qū)百大最帥面孔第101名  
Spring是一個輕量級的IoC和AOP容器框架,是為Java應(yīng)用程序提供基礎(chǔ)性服務(wù)的一套框架,目的是用于簡化企業(yè)應(yīng)用程序的開發(fā),它使得開發(fā)者只需要關(guān)心業(yè)務(wù)需求,下面這篇文章主要給大家介紹了關(guān)于Spring更簡單的存儲方式與獲取方式的相關(guān)資料,需要的朋友可以參考下

存儲方式(注解)

使用注解的方式存儲業(yè)務(wù)對象到Spring中會更簡單

1.配置spring.xml設(shè)置spring存入對象的根路徑 ,目的是讓Spring項目啟動后,能夠去根路徑下的所有類中掃描并標識為需要存儲到Spring中的對象存儲到Spring中

<?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:content="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context https://www.springframework.org/schema/context/spring-context.xsd">
    <!-- 配置一下:bean注解掃描的根路徑(方面后面更簡單存儲對象到spring容器)-->
    <content:component-scan base-package="com.bit"></content:component-scan>
</beans>

2.使用注解將bean對象存儲到spring框架中

注解分類:

1.類注解:@Controller【控制器】,@Service【業(yè)務(wù)邏輯層】,@Repository【數(shù)據(jù)持久層】,@Component【組件類】,@Configuration【配置類】

2.方法注解:@Bean(必須配合類注解使用)

@Controller

創(chuàng)建bean對象

package com.bit;

import org.springframework.stereotype.Controller;

/**
 * Description:
 * User: lmp
 * Date: 2022-05-24
 * Time: 19:23
 */
@Controller
public class UserController {
    public void sayHi(String name){
        System.out.println("Hi controller"+name);
    }
}

讀取bean對象

package com.bit;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

/**
 * Description:
 * User: lmp
 * Date: 2022-05-24
 * Time: 15:25
 */
public class App {
    public static void main(String[] args) {
        //先獲取對象的Spring
        ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
        //從 Spring 中獲得存入的對象(將存入的類首字母小寫,若類名字符大于2個,并且前兩個字符都是大寫,那么使用原類名作為bean的名字)
        UserController userController = context.getBean("userController",UserController.class);
        userController.sayHi("Bit");
    }
}

@Service

和controller一樣

@Repository

和controller一樣

@Configuration

和controller一樣

@Component

和controller一樣

方法注解@Bean

一般寫在組件里面,方法注解必須配合類注解使用,因為Spring默認是類級別的掃描

package com.bit.util;

import com.bit.Model.User;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * Description:
 * User: lmp
 * Date: 2022-05-24
 * Time: 21:14
 */
@Component
public class UserBean {
    @Bean //將當前對象存儲在Spring當中
    public User user1(){
        User user = new User();
        user.setId(1);
        user.setName("zhangsan");
        user.setAge(18);
        return user;
    }
}

重命名bean

可以通過設(shè)置name屬性給Bean對象進行重命名操作

@Bean重命名可以有多個別名,但是當指定別名之后,方法名就取不到對象了

package com.bit.util;

import com.bit.Model.User;
import com.sun.org.apache.bcel.internal.generic.RETURN;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;

/**
 * Description:
 * User: lmp
 * Date: 2022-05-24
 * Time: 21:14
 */
@Component
public class UserBean {
    @Bean(name = {"u1","userInfo1"}) //將當前對象存儲在Spring當中
    public User user1(){
        User user = new User();
        user.setId(1);
        user.setName("zhangsan");
        user.setAge(18);
        return user;
    }

    @Bean(name = "u2") //將當前對象存儲在Spring當中
    public User user2(){
        User user = new User();
        user.setId(1);
        user.setName("lisi");
        user.setAge(18);
        return user;
    }
}

五大注解之間的關(guān)系

從業(yè)務(wù)邏輯來說,@Controller是@Component的子類,同樣,@Service,@Repository,@Configuration都是@Component的子類

從Spring中獲取對象

@Autowired

屬性注入(屬性注冊)

Setter注入

構(gòu)造方法注入

注入注解

@Qualifier 可以解決同一個類有兩個以上的對象的情況,可以使用這個注解,它相當于@Resource(name=“”)

三種注入的優(yōu)缺點

  • 屬性注入的優(yōu)點是簡潔,只適用于IoC容器,如果非IOC容器不可用,會報空指針異常
  • 構(gòu)造方法注入是Spring推薦的注入方式,缺點是如果有多個注入會顯得比較臃腫
  • Setter方式是Spring前期版本推薦的注入方式,但通用性不如構(gòu)造方法,

@Resource

對象注入的另一種方式:使用@Resource注解,但Resource注解不能使用在構(gòu)造方法上

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

1.出身不同,他們所屬的包不一樣,Resource屬于javajdk中的javax包中,而Autowired屬于springframework包中的

2.作用范圍不同,Resource不可以使用在構(gòu)造方法注解上,而autowired可以

3.功能不同 Resource可以使用name屬性,從而完成對象的別名注入,而autowired沒有。

總結(jié)

到此這篇關(guān)于Spring更簡單的存儲方式與獲取方式的文章就介紹到這了,更多相關(guān)Spring存儲與獲取方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot使用Shiro實現(xiàn)動態(tài)加載權(quán)限詳解流程

    SpringBoot使用Shiro實現(xiàn)動態(tài)加載權(quán)限詳解流程

    本文小編將基于?SpringBoot?集成?Shiro?實現(xiàn)動態(tài)uri權(quán)限,由前端vue在頁面配置uri,Java后端動態(tài)刷新權(quán)限,不用重啟項目,以及在頁面分配給用戶?角色?、?按鈕?、uri?權(quán)限后,后端動態(tài)分配權(quán)限,用戶無需在頁面重新登錄才能獲取最新權(quán)限,一切權(quán)限動態(tài)加載,靈活配置
    2022-07-07
  • Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼

    Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼

    這篇文章主要介紹了Java實現(xiàn)數(shù)組翻轉(zhuǎn)的實現(xiàn)代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-09-09
  • java CompletableFuture實現(xiàn)異步編排詳解

    java CompletableFuture實現(xiàn)異步編排詳解

    這篇文章主要為大家介紹了java CompletableFuture實現(xiàn)異步編排詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Java封裝數(shù)組實現(xiàn)包含、搜索和刪除元素操作詳解

    Java封裝數(shù)組實現(xiàn)包含、搜索和刪除元素操作詳解

    這篇文章主要介紹了Java封裝數(shù)組實現(xiàn)包含、搜索和刪除元素操作,結(jié)合實例形式分析了java針對數(shù)組元素的查找、刪除、判斷等相關(guān)操作封裝與使用技巧,需要的朋友可以參考下
    2020-03-03
  • SpringMVC用JsonSerialize日期轉(zhuǎn)換方法

    SpringMVC用JsonSerialize日期轉(zhuǎn)換方法

    下面小編就為大家?guī)硪黄猄pringMVC用JsonSerialize日期轉(zhuǎn)換方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起 小編過來看看吧
    2016-11-11
  • Spring @Value的注解使用和原理解析

    Spring @Value的注解使用和原理解析

    @Value注解在Spring開發(fā)中是一個使用很頻繁的注解,在項目開發(fā)中,我們通常需要讀取配置文件中的一些信息,當然,@Value不單單能讀取配置文件,還能讀取系統(tǒng)屬性,還可以讀取其他bean的屬性,本章就來詳細介紹@Value注解的使用和對源碼進行分析
    2023-06-06
  • Spring Boot 直接用jar運行項目的方法

    Spring Boot 直接用jar運行項目的方法

    這篇文章主要介紹了Spring Boot 直接用jar運行項目的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下
    2018-02-02
  • Java接收前端請求體的多種方式總結(jié)

    Java接收前端請求體的多種方式總結(jié)

    這篇文章主要給大家介紹了關(guān)于Java接收前端請求體的多種方式,文中通過代碼介紹的非常詳細,對大家學習或者Java具有一定的參考學習價值,需要的朋友可以參考下
    2023-08-08
  • JDK8中新增的Optional工具類基本使用

    JDK8中新增的Optional工具類基本使用

    Optional不是對null關(guān)鍵字的一種替代,而是對于null判定提供了一種更加優(yōu)雅的實現(xiàn),接下來通過本文給大家分享JDK8中新增的Optional工具類基本使用,感興趣的朋友跟隨小編一起看看吧
    2021-06-06
  • Java使用JDBC連接數(shù)據(jù)庫

    Java使用JDBC連接數(shù)據(jù)庫

    本文詳細講解了Java使用JDBC連接數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12

最新評論

杨浦区| 鲁山县| 神木县| 天津市| 正阳县| 宁陕县| 宝丰县| 托克托县| 来凤县| 东至县| 琼中| 东兴市| 瑞金市| 抚宁县| 夹江县| 灵山县| 和静县| 桐柏县| 双江| 定南县| 阜宁县| 柞水县| 静乐县| 武宁县| 铜川市| 右玉县| 安远县| 绥江县| 武邑县| 台安县| 新沂市| 越西县| 延安市| 甘德县| 乡城县| 罗甸县| 信宜市| 漳平市| 蛟河市| 土默特左旗| 铁力市|