亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Spring IOC的相關(guān)注解運(yùn)用詳解

 更新時(shí)間:2023年08月09日 09:33:23   作者:會(huì)洗碗的CV工程師  
這篇文章主要介紹了Spring IOC的相關(guān)注解運(yùn)用詳解,純注解實(shí)現(xiàn)IOC需要一個(gè)Java類(lèi)代替xml文件,這個(gè)Java類(lèi)上方需要添加@Configuration,表示該類(lèi)是一個(gè)配置類(lèi),作用是代替配置文件,需要的朋友可以參考下

一、@Configuration

此時(shí)基于注解的IOC配置已經(jīng)完成,但是我們依然離不開(kāi)Spring的xml配置文件。接下來(lái)我們脫離bean.xml,使用純注解實(shí)現(xiàn)IOC。

在真實(shí)開(kāi)發(fā)中,我們一般還是會(huì)保留xml配置文件,很多情況下使用配置文件更加方便。 純注解實(shí)現(xiàn)IOC需要一個(gè)Java類(lèi)代替xml文件。這個(gè)Java類(lèi)上方需要添加@Configuration,表示該類(lèi)是一個(gè)配置類(lèi),作用是代替配置文件。

SpringConfig配置類(lèi)

package com.example;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SpringConfig {
}

二、@ComponentScan

1. 說(shuō)明

作用:指定spring在初始化容器時(shí)掃描的包。 位置:配置類(lèi)上方

SpringConfig配置類(lèi)

package com.example;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.example")
public class SpringConfig {
}

2. 測(cè)試方法

    // 測(cè)試純注解
    @Test
    public void t4(){
        ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
        StudentService service = ac.getBean("studentService",StudentService.class);
        System.out.println(service.findById(8));
    }

3. 運(yùn)行結(jié)果

OK,確實(shí)可以。

三、@PropertySource

1. 說(shuō)明

作用:代替配置文件中的 <context:property-placeholder> 掃描配置文件

位置:配置類(lèi)上方

注意:配置文件位置前要加關(guān)鍵字 classpath

JdbcConfig配置類(lèi)

package com.example;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import java.sql.Connection;
import java.sql.DriverManager;
@Configuration
@PropertySource("classpath:db.properties")
public class JdbcConfig {
    @Value("${jdbc.username}")
    private String username;
    @Value("${jdbc.password}")
    private String password;
    @Override
    public String toString() {
        return "JdbcConfig[ " +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                " ]";
    }
}

2. 測(cè)試方法

    // 測(cè)試純注解掃描jdbc
    @Test
    public void t5(){
        ApplicationContext ac = new AnnotationConfigApplicationContext(JdbcConfig.class);
        JdbcConfig config = (JdbcConfig) ac.getBean("jdbcConfig");
        System.out.println(config);
    }

3. 測(cè)試結(jié)果

OK,也是沒(méi)有問(wèn)題的。

四、@Bean

1. 說(shuō)明

  • 作用:將方法的返回值對(duì)象放入Spring容器中。如果想將第三方類(lèi)的對(duì)象放入容器,可以使用@Bean
  • 位置:配置類(lèi)的方法上方。
  • 屬性:name:給bean對(duì)象設(shè)置id
  • 注意:@Bean修飾的方法如果有參數(shù),spring會(huì)根據(jù)參數(shù)類(lèi)型從容器中查找可用對(duì)象。
  • 舉例:如果想將jdbc連接對(duì)象放入Spring容器,我們無(wú)法修改Connection源碼添加@Component,此時(shí)就需要使用將@Bean該對(duì)象放入Spring容器

2. 添加驅(qū)動(dòng)依賴(lài)

在pom.xml文件添加依賴(lài)

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>

3.將Connection對(duì)象放入Spring容器

    @Bean("connection")
    public Connection getConnection(){
        try{
            Class.forName("com.mysql.cj.jdbc.Driver");
            return DriverManager.getConnection("jdbc:mysql:///mysql","root","666666");
        }catch (Exception e){
            e.printStackTrace();
            return null;
        }
    }

4. 測(cè)試

測(cè)試方法

    // 測(cè)試注解bean
    @Test
    public void t6(){
        ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
        Connection connection = (Connection) ac.getBean("connection");
        System.out.println(connection);
    }

運(yùn)行結(jié)果

OK,也是可以成功獲取連接的

五、@Import

1. 說(shuō)明

作用:如果配置過(guò)多,會(huì)有多個(gè)配置類(lèi),該注解可以為主配置類(lèi)導(dǎo)入其他配置類(lèi)

位置:主配置類(lèi)上方

上述我們講的,SpringConfig應(yīng)當(dāng)為主配置類(lèi),所以該注解應(yīng)當(dāng)添加在SpringConfig類(lèi)的上方

package com.example;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@ComponentScan("com.example")
@Import(JdbcConfig.class)
public class SpringConfig {
}

2. 測(cè)試方法

    // 測(cè)試純注解
    @Test
    public void t4(){
        ApplicationContext ac = new AnnotationConfigApplicationContext(SpringConfig.class);
        JdbcConfig jdbcConfig = ac.getBean("jdbcConfig",JdbcConfig.class);
        System.out.println(jdbcConfig);
    }

3. 運(yùn)行結(jié)果

OK,確實(shí)也是可以獲取的。說(shuō)明主配置類(lèi)成功導(dǎo)入了。本章Spring IOC的學(xué)習(xí)就到這里了。

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

相關(guān)文章

最新評(píng)論