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

詳解Spring如何更簡單的讀取和存儲對象

 更新時間:2023年07月18日 11:00:31   作者:摸魚王胖嘟嘟  
這篇文章主要為大家詳細介紹了Spring中如何更簡單的實現(xiàn)讀取和存儲對象,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

前置工作

在spring-config.xml添加如下配置:配置bean的掃描根路徑:只有當前目錄下的類才會掃描是否添加了注解,如果添加了注解,就將這些加了注解的類,存放到IoC容器中。

<?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">
    <content:component-scan base-package="com.java.demo">
    </content:component-scan>
</beans>

更加簡單的存儲Bean對象

兩種方法:

1.通過類注解實現(xiàn)Bean對象的存儲;

  • @Controller:控制器,驗證用戶請求的數(shù)據(jù)正確性(安保系統(tǒng))
  • @Service:服務層,編排和調度具體執(zhí)行方法的(客服中心)
  • @Repository:持久層,和數(shù)據(jù)庫進行交互,等同于DAO(Data Access Object) 數(shù)據(jù)訪問層
  • @Component:組件(工具類)
  • @Configuration:配置項(配置項目中的一些配置)

2.通過方法注解實現(xiàn)Bean對象的存儲

@Bean路徑

使用@Controller(控制器存儲)

package com.java.demo;
import org.springframework.stereotype.Controller;
@Controller(value = "userinfo")
public class User {
    public void sayHi() {
        System.out.println("Hi,User~");
    }
}
import com.java.demo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@SuppressWarnings({"all"})
public class App {
    public static void main(String[] args) {
        // 1. 得到容器對象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        // 2. 得到 Bean 對象
        User user = context.getBean("userinfo", User.class);
        // 3. 使用 Bean 對象
        user.sayHi();
    }
}

import com.java.demo.Student;
import com.java.demo.User;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@SuppressWarnings({"all"})
public class App {
    public static void main(String[] args) {
        // 1. 得到容器對象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        // 2. 得到 Bean 對象
//        User user = context.getBean("userinfo", User.class);
        Student student = context.getBean("student", Student.class);
        // 3. 使用 Bean 對象
//        user.sayHi();
        student.sayHi();
    }
}

原因就是:student沒有加注解。

使用注解和XML是可以一起使用的。

類注解存儲Bean命名問題

默認類名首字母小寫就能獲取到Bean對象。

獲取不到Bean對象

使用原類名,可以獲取到Bean對象

我們在獲取Bean對象時,傳入名稱時,一般分為兩種情況:

默認情況下:使用原類名首字母小寫就能讀取到Bean對象

特殊情況:如果不滿足首字母大寫和第二個字母小寫的情況,那么使用原類名獲取

Java項目標準分層

五大類注解之間的關系

方法注解@Bean

a.使用注意事項:@Bean 注解 必須要配合五大類注解一起使用

package com.java.demo.model;
import java.time.LocalDateTime;
@SuppressWarnings({"all"})
/**
 * 普通的文章實體類
 */
public class ArticleInfo {
    private int aid;
    private String title;
    private String content;
    private LocalDateTime createtime;
    public int getAid() {
        return aid;
    }
    public void setAid(int aid) {
        this.aid = aid;
    }
    public String getTitle() {
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }
    public String getContent() {
        return content;
    }
    public void setContent(String content) {
        this.content = content;
    }
    public LocalDateTime getCreatetime() {
        return createtime;
    }
    public void setCreatetime(LocalDateTime createtime) {
        this.createtime = createtime;
    }
    @Override
    public String toString() {
        return "ArticleInfo{" +
                "aid=" + aid +
                ", title='" + title + '\'' +
                ", content='" + content + '\'' +
                ", createtime=" + createtime +
                '}';
    }
}
package com.java.demo;
import com.java.demo.model.ArticleInfo;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Controller;
import java.time.LocalDateTime;
@SuppressWarnings({"all"})
@Controller
public class Articles {
    @Bean // 將當前方法返回的對象存儲到 IoC 容器
    public ArticleInfo articleInfo() {
        // 偽代碼
        ArticleInfo articleInfo = new ArticleInfo();
        articleInfo.setAid(1);
        articleInfo.setTitle("今天周幾?");
        articleInfo.setContent("今天周一!");
        articleInfo.setCreatetime(LocalDateTime.now());
        return articleInfo;
    }
}
import com.java.demo.UConfig;
import com.java.demo.example.Teacher;
import com.java.demo.model.ArticleInfo;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
@SuppressWarnings({"all"})
public class App {
    public static void main(String[] args) {
        // 1. 得到容器對象
        ApplicationContext context =
                new ClassPathXmlApplicationContext("spring-config.xml");
        // 2. 得到 Bean 對象
//        User user = context.getBean("userinfo", User.class);
//        Student student = context.getBean("student", Student.class);
//        UserService userService = context.getBean("userService",UserService.class);
//        Teacher teacher = context.getBean("teacher",Teacher.class);
//        UConfig uConfig = context.getBean("UConfig",UConfig.class);
        ArticleInfo articleInfo = context.getBean("articleInfo", ArticleInfo.class);
        // 3. 使用 Bean 對象
//        user.sayHi();
//        student.sayHi();
//        userService.sayHi();
//        teacher.sayHi();
//        uConfig.sayHi();
        System.out.println(articleInfo);
    }
}

b.@Bean 獲取時注意事項:@Bean的默認命名=方法名。

重命名@Bean的幾種方式

方式1:@Bean("aaa")

方法2:@Bean(name = "aaa")

方式3:@Bean(value = "aaa")

重命名擴展:@Bean 支持指定多個名稱@Bean(value = {“aaa”})默認命名注意事項:當@Bean重命名之后,那么默認的使用方法名獲取Bean對象的方式就不能使用了。

以上就是詳解Spring如何更簡單的讀取和存儲對象的詳細內(nèi)容,更多關于Spring讀取存儲對象的資料請關注腳本之家其它相關文章!

相關文章

  • MyBatis  Properties及別名定義實例詳解

    MyBatis Properties及別名定義實例詳解

    這篇文章主要介紹了MyBatis Properties及別名定義實例詳解,需要的朋友可以參考下
    2017-08-08
  • java實現(xiàn)學生成績檔案管理系統(tǒng)

    java實現(xiàn)學生成績檔案管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)學生成績檔案管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java構造方法和方法重載詳解

    Java構造方法和方法重載詳解

    大家好,本篇文章主要講的是Java構造方法和方法重載詳解,感興趣的同學趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • SpringBoot三種打包方法舉例詳解

    SpringBoot三種打包方法舉例詳解

    這篇文章主要給大家介紹了關于SpringBoot三種打包方法的相關資料,Spring Boot是一個開發(fā)框架,目的是簡化Spring應用的初始搭建過程和開發(fā)過程,文中提供了3種打包方法,需要的朋友可以參考下
    2023-12-12
  • Java中的Rocketmq事務消息詳解

    Java中的Rocketmq事務消息詳解

    這篇文章主要介紹了Java中的Rocketmq事務消息詳解,RocketMQ的事務消息支持在業(yè)務邏輯與發(fā)送消息之間提供事務保證,RocketMQ通過兩階段的方式提供事務消息的支持,需要的朋友可以參考下
    2023-08-08
  • idea常用配置之注釋快捷鍵方式

    idea常用配置之注釋快捷鍵方式

    這篇文章主要介紹了idea常用配置之注釋快捷鍵方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • 如何禁用IntelliJ IDEA的LightEdit模式(推薦)

    如何禁用IntelliJ IDEA的LightEdit模式(推薦)

    這篇文章主要介紹了如何禁用IntelliJ IDEA的LightEdit模式,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • Java Swing JToggleButton開關按鈕的實現(xiàn)

    Java Swing JToggleButton開關按鈕的實現(xiàn)

    這篇文章主要介紹了Java Swing JToggleButton開關按鈕的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Java命令設計模式詳解

    Java命令設計模式詳解

    這篇文章主要為大家詳細介紹了Java命令設計模式,對命令設計模式進行分析理解,感興趣的小伙伴們可以參考一下
    2016-02-02
  • springboot實現(xiàn)定時任務的四種方式小結

    springboot實現(xiàn)定時任務的四種方式小結

    本文主要介紹了springboot實現(xiàn)定時任務的四種方式小結,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-01-01

最新評論