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

Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)

這篇具有很好參考價值的文章主要介紹了Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】

第二章、第一個Spring程序

1.軟件版本

1.JDK1.8+
2.Maven3.5+
3.IDEA2018+
4.SpringFramework 5.1.4
官網(wǎng):www.spring.io

2.環(huán)境搭建

  • Spring的jar包

    1.設(shè)置pom的依賴

    <!-- https://mvnrepository.com/artifact/org.springframework/spring-context -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>5.1.4.RELEASE</version>
            </dependency>
    
  • Spring的配置文件

    1.配置文件的放置位置:任意位置 沒有硬性要求

    2.配置文件的命名:沒有硬性要求 建議 applicationContext.xml

    思考:日后應(yīng)用Spring框架時,需要進行配置文件路徑的位置。

    Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)

3.Spring的核心API

  • ApplicationContext

    作用:Spring提供的ApplicationContext這個工廠,用于對象的創(chuàng)建

    好處:解耦合

    • ApplicationContext接口類型

      接口:屏蔽實現(xiàn)的差異

      非web環(huán)境:ClassPathXmlApplicationContext(例如:main junit)

      web環(huán)境:XmlWebApplicationContext

    Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)

    可以看到ApplicationContext就是一個接口

    • 重量級資源(對象占用內(nèi)存多就是重量級資源。)

      1.ApplicationContext工廠的對象占用大量內(nèi)存(指的是下面的實現(xiàn)類)

      2.不會頻繁的創(chuàng)建對象:一個應(yīng)用程序只會創(chuàng)建一個工廠對象

      3.ApplicationContext工廠:一定是線程安全的(多線程并發(fā)訪問)

4.程序開發(fā)

spring開發(fā)的4個步驟

1.創(chuàng)建類型

2.配置文件的配置 applicationContext.xml

<bean id="person" class="com.baizhi.basic.Person"/>

3.通過工廠類 獲得對象

ApplicationContext | ClassPathXmlApplicationContext

//1.獲取Spring的工廠
ApplicationContext context = new ClassPathXmlApplicationContext("/applicationContext.xml");
//2 通過工廠類獲取對象
Person person = (Person) context.getBean("person");

5.細節(jié)分析

  • 名詞解釋

    Spring工廠創(chuàng)建的對象叫做bean

  • Spring工廠的相關(guān)方法

    Person person = context.getBean("person", Person.class);
            System.out.println("person = " + person);
    
            當(dāng)前Spring的配置文件中只能有一個<bean class是Person類型
            Person person = context.getBean(Person.class);
            System.out.println("person = " + person);
    
            獲取的是 Spring工廠配置文件中所有bean標(biāo)簽的id值 person person1...
            String[] beanDefinitionNames = context.getBeanDefinitionNames();
            for (String beanDefinitionName : beanDefinitionNames) {
                System.out.println(beanDefinitionName);
            }
    
            //根據(jù)類型獲取Spring配置文件中對應(yīng)的id值
            String[] beanNamesForType = context.getBeanNamesForType(Person.class);
            for (String s : beanNamesForType) {
                System.out.println(s);
            }
           //用于判斷是否存在指定id值的bean
            System.out.println(context.containsBeanDefinition("person"));
    
            //用于判斷是否存在指定id值的bean
            System.out.println(context.containsBean("person"));
    
  • 配置文件

    1.只配置class屬性

    上述這種配置 有默認(rèn)id值:com.baizhi.basic.Person#0

    應(yīng)用場景:如果這個bean只需要使用一次,那么就可以省略id

               如果這個bean使用多次,則需要設(shè)置id值
    

    2.name屬性

    作用:用于在Spring的配置文件中,為bean對象定義別名

    相同:

    context.getBean("name|id");

    區(qū)別:

    1.別名可以定義多個,但是id屬性只能有一個值

    2.XML的id屬性的值,命名要求:必須以字母開頭,字母 數(shù)字 下劃線 連字符 不能以特殊字符開頭

    name屬性的值,命名沒有要求 命名靈活

    XML發(fā)展到了今天:id屬性的限制不存在了

    3.代碼

    //用于判斷是否存在指定id值的bean,不能判斷name值
          System.out.println(context.containsBeanDefinition("p"));
    
    //用于判斷是否存在指定id值以及name值的bean
           System.out.println(context.containsBean("p"));
    

6.Spring工廠的底層實現(xiàn)原理(簡易版)

“Spring工廠是可以調(diào)用對象私有的構(gòu)造方法創(chuàng)建對象” 這就是比 new 創(chuàng)建對象 強大的地方

Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)

Spring的運行原理/機制

7.思考

問題:未來在開發(fā)過程中,是不是所有的對象,都會交給Spring工廠來創(chuàng)建呢?

回答:理論上 是的,但是有特例:實體對象(entity)是不會交給Spring創(chuàng)建的,它是由持久層框架進行創(chuàng)建,因為它需要數(shù)據(jù),數(shù)據(jù)來源于數(shù)據(jù)庫,而Spring沒有數(shù)據(jù)。

第三章、5.x與日志框架的整合

Spring與日志框架進行整合,日志框架就可以在控制臺中,輸出Spring框架運行過程中的一些重要的信息

好處:便于了解Spring框架的運行過程,有利于程序的調(diào)試

  • Spring如何整合日志框架

    默認(rèn)

    Spring1,2,3早期都是于commons-logging.jar 整合的日志框架

    Spring5.x默認(rèn)整合的日志框架 logback log4j2

    Spring5.x整合log4j

    1.引入log4j jar包

    2.引入log4.properties配置文件

    • pom

      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.7.25</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
      
    • log4j.properties

      # resources文件夾根目錄下
      ## 配置根
      log4j.rootLogger = debug,console
      ### 日志輸出到控制臺顯示
      log4j.appender.console=org.apache.log4j.ConsoleAppender
      log4j.appender.console.Target=System.out
      log4j.appender.console.layout=org.apache.log4j.PatternLayout
      log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss) %-5p %c{1}:%L - %m%n
      

下一章:Set注入詳解和構(gòu)造注入文章來源地址http://www.zghlxwxcb.cn/news/detail-749998.html

到了這里,關(guān)于Spring5學(xué)習(xí)隨筆-Spring5的第一個程序(環(huán)境搭建、日志框架整合)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • Spring5學(xué)習(xí)隨筆-Set注入詳解和構(gòu)造注入

    Spring5學(xué)習(xí)隨筆-Set注入詳解和構(gòu)造注入

    學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】 通過Spring工廠及配置文件,為所創(chuàng)建對象的成員變量賦值 “通過編碼的方式,為成員遍歷進行賦值,存在耦合” 類為成員變量提供set方法

    2024年02月05日
    瀏覽(19)
  • Spring5學(xué)習(xí)隨筆-整合MyBatis(持久層)、連接池、Mapper文件

    Spring5學(xué)習(xí)隨筆-整合MyBatis(持久層)、連接池、Mapper文件

    學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】 JavaEE開發(fā)需要持久層進行數(shù)據(jù)庫的訪問操作。 JDBC MyBatis、Hibernate進行持久開發(fā)過程存在大量的代碼冗余 Spring基于模板設(shè)計模式對與上述的持

    2024年02月05日
    瀏覽(50)
  • Spring5學(xué)習(xí)隨筆-高級注解(@ComponentScan、@Configuration.....),替換XML配置文件

    Spring5學(xué)習(xí)隨筆-高級注解(@ComponentScan、@Configuration.....),替換XML配置文件

    學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】 Spring在3.x提供的新的注解,用于替換XML配置文件。 問題 : 配置Bean在應(yīng)用的過程中替換了XML具體的什么內(nèi)容? AnnotationConfigApplicationContext 配

    2024年02月05日
    瀏覽(20)
  • Spring5學(xué)習(xí)隨筆-生命周期、自定義類型轉(zhuǎn)換器、后置處理Bean

    Spring5學(xué)習(xí)隨筆-生命周期、自定義類型轉(zhuǎn)換器、后置處理Bean

    學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】 指的是一個對象創(chuàng)建、存活、消亡的一個完整過程 由Spring負(fù)責(zé)對象的創(chuàng)建、存活、銷毀,了解生命周期,有利于我們使用好Spring為我們創(chuàng)建

    2024年02月05日
    瀏覽(29)
  • Spring5學(xué)習(xí)隨筆-IOC(反轉(zhuǎn)控制)、DI(依賴注入)和創(chuàng)建復(fù)雜對象

    Spring5學(xué)習(xí)隨筆-IOC(反轉(zhuǎn)控制)、DI(依賴注入)和創(chuàng)建復(fù)雜對象

    學(xué)習(xí)視頻:【孫哥說Spring5:從設(shè)計模式到基本應(yīng)用到應(yīng)用級底層分析,一次深入淺出的Spring全探索。學(xué)不會Spring?只因你未遇見孫哥】 控制:對于成員變量賦值的控制權(quán) 反轉(zhuǎn)控制:把對于成員變量賦值的控制權(quán),從代碼中反轉(zhuǎn)(轉(zhuǎn)移)到Spring工廠和配置文件中。 好處:解耦合

    2024年02月05日
    瀏覽(54)
  • Spring MVC學(xué)習(xí)隨筆-第一個Spring MVC程序(父子項目結(jié)構(gòu)、Tomcat配置、ViewResolver)

    Spring MVC學(xué)習(xí)隨筆-第一個Spring MVC程序(父子項目結(jié)構(gòu)、Tomcat配置、ViewResolver)

    學(xué)習(xí)視頻:孫哥說SpringMVC:結(jié)合Thymeleaf,重塑你的MVC世界?。八从械腤eb開發(fā)探索之旅 JDK1.8+ Maven3.6+ IDEA2021+ SpringFramework 5.1.4 Tomcat8.5.29 MySQL5.7.18 按照父子項目的結(jié)構(gòu),管理和創(chuàng)建項目,創(chuàng)建一個空Project作為父項目,pom文件如下 創(chuàng)建子項目Module: 子項目pom文件: 注意 :初次

    2024年02月05日
    瀏覽(24)
  • 熱愛python的第一天:初識python,搭建python環(huán)境,運行第一個python小程序

    熱愛python的第一天:初識python,搭建python環(huán)境,運行第一個python小程序

    ?目錄 專欄導(dǎo)讀? 1 初始python python 概述 python的應(yīng)用領(lǐng)域? ?應(yīng)用python的公司 ?2 搭建python 開發(fā)環(huán)境 ?2.1 安裝python(以windows 系統(tǒng)為例)(1)下載安裝包? (2) 下載保存后打開文件夾點擊以管理員身份運行 ?(3)選擇自定義安裝,同時將add python3.9 to path勾上。 ?(4)測試

    2024年02月13日
    瀏覽(28)
  • 【Spring入門 】1.環(huán)境搭建并運行第一個Spring程序(Maven依賴)

    【Spring入門 】1.環(huán)境搭建并運行第一個Spring程序(Maven依賴)

    ?作者簡介:正在學(xué)習(xí)java全棧,有興趣的可以關(guān)注我一起學(xué)習(xí) ??個人主頁: ConderX(摸魚)的主頁 ??系列專欄: Spring專欄 ??如果覺得博主的文章還不錯的話,請??三連支持一下博主哦?? 我也是剛開始接觸Spring,有興趣的同學(xué)可以和我一起零基礎(chǔ)(當(dāng)然要會Java基礎(chǔ)和XML文檔)慢

    2024年02月07日
    瀏覽(18)
  • 我的第一個后端項目(環(huán)境搭建,Springboot項目,運行,接口驗證)

    我的第一個后端項目(環(huán)境搭建,Springboot項目,運行,接口驗證)

    訪問Java Software | OracleOracle官方網(wǎng)站,下載適合你操作系統(tǒng)的最新版本的JDK。安裝JDK并設(shè)置好JAVA_HOME環(huán)境變量。 推薦使用IntelliJ IDEA作為IDE。你可以從官方網(wǎng)站(IntelliJ IDEA – the Leading Java and Kotlin IDE)下載適合你操作系統(tǒng)的版本,并根據(jù)安裝向?qū)нM行安裝。最新2023.2版本需要注

    2024年02月15日
    瀏覽(87)
  • SpringBoot-1-Spring Boot實戰(zhàn):快速搭建你的第一個應(yīng)用,以及了解原理

    SpringBoot-1-Spring Boot實戰(zhàn):快速搭建你的第一個應(yīng)用,以及了解原理

    SpringBootWeb入門 我們在之前介紹Spring的時候,已經(jīng)說過Spring官方(Spring官方)提供很多開源項目,點擊projects,看到spring家族旗下的項目 Spring發(fā)展到今天已經(jīng)形成了一種開發(fā)生態(tài)圈,Spring提供了若干個子項目,每個項目用于完成特定的功能。而我們在項目開發(fā)時,一般會偏向于選

    2024年02月12日
    瀏覽(92)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包