欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

存儲方式(注解)

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

1.配置spring.xml設置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è)務邏輯層】,@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

可以通過設置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;
    }
}

五大注解之間的關系

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

從Spring中獲取對象

@Autowired

屬性注入(屬性注冊)

Setter注入

構造方法注入

注入注解

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

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

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

@Resource

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

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

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

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

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

總結

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

相關文章

  • JMS 之 Active MQ 的消息傳輸(詳解)

    JMS 之 Active MQ 的消息傳輸(詳解)

    下面小編就為大家?guī)硪黄狫MS 之 Active MQ 的消息傳輸(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • Springboot中靜態(tài)文件的兩種引入方式總結

    Springboot中靜態(tài)文件的兩種引入方式總結

    這篇文章主要介紹了Springboot中靜態(tài)文件的兩種引入方式總結,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Java中使用增強for循環(huán)的實例方法

    Java中使用增強for循環(huán)的實例方法

    在本篇文章里小編給大家整理是的關于Java中如何使用增強for循環(huán)的實例內容以及相關代碼,需要的朋友們可以學習下。
    2019-08-08
  • Springboot以Repository方式整合Redis的方法

    Springboot以Repository方式整合Redis的方法

    這篇文章主要介紹了Springboot以Repository方式整合Redis的方法,本文通過圖文并茂實例詳解給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • java如何根據(jù)用戶請求獲取ip地址并解析省市信息

    java如何根據(jù)用戶請求獲取ip地址并解析省市信息

    根據(jù)當前用戶本地IP地址,查詢IP地址庫,獲取IP所在的省市信息,目前有多種方式實現(xiàn)該功能,這篇文章主要給大家介紹了關于java如何根據(jù)用戶請求獲取ip地址并解析省市信息的相關資料,需要的朋友可以參考下
    2023-12-12
  • Reactor3 Map與FlatMap的區(qū)別示例詳解

    Reactor3 Map與FlatMap的區(qū)別示例詳解

    這篇文章主要為大家介紹了Reactor3 Map與FlatMap的區(qū)別示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • mybatis Map查詢結果下劃線轉駝峰的實例

    mybatis Map查詢結果下劃線轉駝峰的實例

    這篇文章主要介紹了mybatis Map查詢結果下劃線轉駝峰的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-09-09
  • 基于JPA的Repository使用詳解

    基于JPA的Repository使用詳解

    這篇文章主要介紹了JPA的Repository使用詳解,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • IntelliJ IDEA2020.3詳細安裝教程

    IntelliJ IDEA2020.3詳細安裝教程

    這篇文章主要介紹了IntelliJ IDEA2020.3詳細安裝教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • SpringBoot項目修改訪問端口和訪問路徑的方法

    SpringBoot項目修改訪問端口和訪問路徑的方法

    這篇文章主要介紹了SpringBoot項目修改訪問端口和訪問路徑的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12

最新評論