Spring @configration(注解配置所需环境)
Posted 张梦源
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring @configration(注解配置所需环境)相关的知识,希望对你有一定的参考价值。
1.@configration
- 作用: @Configuration:表明当前的类是一个配置类,Spring中配置类有特殊的地位,一般有一个核心的配置类,用来构建Spring容器,也可以写普通配置类被其他的配置类加载
- @ComponentScan:指定Spring要扫描的包(当Spring构建容器时,将会扫描这个包以及它的子包,扫描所有的注解)
- 基于这两个注解以及AnnotationConfigApplicationContext注解配置核心容器类,可以实现无XML的零配置
解决问题:
<!--
告诉
spring
在创建
bean
容器时要扫描的包
-->
不需要每次都扫描
<context:component-scan base-package="com.bookmanagesystem"></context:component-scan>包。
<?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:context="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
http://www.springframework.org/schema/context/spring-context.xsd">
<context:component-scan base-package="com.bookmanagesystem"></context:component-scan>//配置好之后这行就用不到了
</beans>
现在离不开配置文件,主要是因为其中有一句配置信息告诉spring在创
建bean容器时需要扫描的包,这个时候spring就会扫描指定的包以及
下面的子包中所有类上或者接口上的注解:
这里需要能够起到相同功能的类和注解就是@configration
1.(1)建立配置类
•
类名和包名都可以更改,不限制
(2)关键注解
•
@Configuration
作用:指定当前类是一个配置类
•
@ComponentScan
作用:用于指定spring在创建容器时要扫描的包
属性:value/basePackages:它们作用相同,都是用于指定创建容器时要扫描
的包
使用了此注解后,就相当于配置了XML中的<context:component-scan base
package="***"
如下
主函数中
public static void main(String[] args) {
// 1. 获取核心容器对象
//ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext context = new AnnotationConfigApplicationContext(SpringConfig.class);
IUserService service = (IUserService) context.getBean("userService");
System.out.println(service);
System.out.println(service.queryUser());
// 3.关闭容器(如果不记得关闭容器,最典型的问题就是数据库连接不能释放)
//((ClassPathXmlApplicationContext) context).close();
((AnnotationConfigApplicationContext) context).close();
}
自己写的扫描配置文件SpringConfig
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
@Configuration
@ComponentScan("com.iflytek.bookmanagesystem")
public class SpringConfig {
}
以上是关于Spring @configration(注解配置所需环境)的主要内容,如果未能解决你的问题,请参考以下文章