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.bookmanagesystem")
public class SpringConfig 


以上是关于Spring @configration(注解配置所需环境)的主要内容,如果未能解决你的问题,请参考以下文章

代理设计模式

Spring使用@Scheduled注解配置定时任务

spring配置使用xml还是注解好

Spring 注解开发 -- Spring新注解(完全替换Spring配置文件 使用配置类)

Spring 基于注解的配置 -实验介绍

用@Resource 注解总是空指针,直接用spring配置是正常的,用注解就空怎么回事