JAVAEE框架之Spring新註解

五.Spring5 新註解

​ 新的註解有用,爲後面的SpringBoot可以打一個基礎,因爲到SpringBoot的課程, 多了很多註解。這時候,先了解一部分。

5.1 @Configuration

@Configuration主要是用來定義配置類,可用於代替xml配置文件,比如之前設置的beans.xml

5.2 @ComponentScan

該註解默認會掃描該類所在的包下所有的配置類,相當於之前的 context:component-scan

5.3 @Bean

​ @Bean是一個方法級別上的註解,主要用在@Configuration註解的類裏,也可以用在@Component註解的類裏。如果不寫,則默認的是添加的bean的id爲方法名。

@Bean(value=“id值”)

@Configuration
public class SpringConfig {

    @Bean(value = "dog")
    public Dog getDog(){
        return  new Dog("京東狗",6.18);
    }
}

5.4 AnnotationConfigApplicationContex

使用AnnotationConfigApplicationContext可以實現基於Java的配置類加載Spring的應用上下文。避免使用application.xml進行配置。相比XML配置,更加便捷。

ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfig.class);
Dog dog= (Dog) ac.getBean("dog");
System.out.println(dog.toString());

5.5 Import

  • 用到的Bean導入到容器

    @Import(value = {Dog.class,Cat.class})
    
    //測試類:
    ApplicationContext ac=new AnnotationConfigApplicationContext(SpringConfig.class);
            Dog dog= (Dog) ac.getBean(Dog.class);
            System.out.println(dog.toString());
    
  • 導入另外一個配置類

​ 相當於<import resource=“lasspath:xxx.xml”/>

5.6 PropertySource

​ 註解用於指定資源文件讀取的位置,它不僅能讀取properties文件,也能讀取xml文件,並且通過YAML解析器,配合自定義PropertySourceFactory實現解析YAML文件。

​ 相當於xml文件裏面的:

<context:property-placeholder location="classpath:/hibernate.properties" /> 

加了:druid的配置類

pom.xml

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid</artifactId>
    <version>1.1.9</version>
</dependency>
package com.aaa.config;

import com.alibaba.druid.pool.DruidDataSource;
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;

/**
 * Created by 張晨光 on 2020/6/18 9:26
 */
@Configuration
@PropertySource("classpath:/druid.properties")
public class JdbcConfig {
    @Value("${driverClassName}")
    private String driverClassName;
    @Value("${url}")
    private String url;
    @Value("${username}")
    private String username;
    @Value("${password}")
    private String password;

    /*@Override
    public String toString() {
        return "JdbcConfig{" +
                "driverClassName='" + driverClassName + '\'' +
                ", url='" + url + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }*/
    //註冊Druid數據源連接池
    @Bean
    public DruidDataSource druidDataSource(){
//        System.out.println("driverClassName====> " + driverClassName);
//        System.out.println("url====> " + url);
//        System.out.println("username====> " + username);
//        System.out.println("username====> " + username);
        DruidDataSource druidDataSource = new DruidDataSource();
        druidDataSource.setDriverClassName(driverClassName);
        druidDataSource.setUrl(url);
        druidDataSource.setUsername(username);
        druidDataSource.setPassword(password);
        return druidDataSource;
    }

}

測試 類:

@org.junit.Test
public  void testTwo(){
    ApplicationContext ac= new AnnotationConfigApplicationContext(SpringConfig.class);
    DruidDataSource druidDataSource= (DruidDataSource) ac.getBean("druidDataSource");
    System.out.println(druidDataSource);
}

回顧:

1.建立了兩個配置類:SpringConfig、JdbcConfig

2.第一個配置類主要測試的註解有:@Configuration @ComponentScan @Bean @Import

3.第二個配置類主要測試的註解有:@PropertySrouce,主要再次來測試一下,從外部來獲取配置文件;

4.都用到了AnnotationConfigApplicationContext類。


> " + driverClassName);
// System.out.println("url
==> " + url);
// System.out.println("username====> " + username);
// System.out.println("username====> " + username);
DruidDataSource druidDataSource = new DruidDataSource();
druidDataSource.setDriverClassName(driverClassName);
druidDataSource.setUrl(url);
druidDataSource.setUsername(username);
druidDataSource.setPassword(password);
return druidDataSource;
}

}


測試 類:

```java
@org.junit.Test
public  void testTwo(){
    ApplicationContext ac= new AnnotationConfigApplicationContext(SpringConfig.class);
    DruidDataSource druidDataSource= (DruidDataSource) ac.getBean("druidDataSource");
    System.out.println(druidDataSource);
}

回顧:

1.建立了兩個配置類:SpringConfig、JdbcConfig

2.第一個配置類主要測試的註解有:@Configuration @ComponentScan @Bean @Import

3.第二個配置類主要測試的註解有:@PropertySrouce,主要再次來測試一下,從外部來獲取配置文件;

4.都用到了AnnotationConfigApplicationContext類。


如果你不習慣於用註解,那麼可以先使用配置文件來,只要達成效果即可,理解即可。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章