javascript
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;/*@Overridepublic String toString() {return "JdbcConfig{" +"driverClassName='" + driverClassName + '\'' +", url='" + url + '\'' +", username='" + username + '\'' +", password='" + password + '\'' +'}';}*///注冊Druid數據源連接池@Beanpublic 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類。
如果你不習慣于用注解,那么可以先使用配置文件來,只要達成效果即可,理解即可。
總結
以上是生活随笔為你收集整理的JAVAEE框架之Spring新注解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Maven projects need
- 下一篇: JAVAEE框架之Spring AOP