Spring拥有多个JavaConfig(@Configuration)的情况

1:在加载Spring容器时,加载多个@Configuration类。 

需要继承AbstractAnnotationConfigDispatcherServletInitializer类,并重写其方法来加载@Configuration标注的类

@Override

protected Class<?>[] getServletConfigClasses() {

      return new Class<?>[] { FirstConfig.class,SecondConfig.class };

}

或者

AnnotationConfigApplicationContext aContext = new AnnotationConfigApplicationContext();
aContext.register(FirstConfig.class);
aContext.register(SecondConfig.class);
aContext.refresh();

2:在加载Spring容器时,加载单个@Configuration类,但要通过@Import 方式整合其他@Configuration类。

@Configuration
@Import(SecondConfig.class)
public class FirstConfig {

    @Bean
    public FirstServiceImpl firstServiceImpl(SecondService secondService){
        FirstServiceImpl fImpl = new FirstServiceImpl();
         fImpl.setSecondService(secondService);
         return fImpl;
    }
}


原理总结:

1、@Configuration类会先合并,后解析,也就是说,配置的内容会合并处理。

2、因为多个 @Configuration类最终会合并到一起(形成一个 ApplicationContext),因此这些配置中的 bean 都是可以互相引用的。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis 目录(?)[-] mybatis实战教程mybatis in action之一开发环境搭建 mybatis实战教程mybatis in action之二以接口的方式编程 mybatis实战教程mybatis in action之三实现数据的增删改查 mybatis实战教程mybatis in action之四实现关联数据的查询 mybatis实战教程mybatis in action之五与spring3集成附源码 mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in action之九mybatis 代码生成工具的使用 mybatis SqlSessionDaoSupport的使用附代码下载 转自:http://www.yihaomen.com/article/java/302.htm (读者注:其实这个应该叫做很基础的入门一下下,如果你看过Hibernate了那这个就非常的简单) (再加一条,其实大家可以看官方的教程更好些:http://mybatis.github.io/mybatis-3/,而且如果英文不是很好的那就看中文的:http://mybatis.github.io/mybatis-3/zh/sqlmap-xml.html) 写在这个系列前面的话: 以前曾经用过ibatis,这是mybatis的前身,当时在做项目时,感觉很不错,比hibernate灵活。性能也比hibernate好。而且也比较轻量级,因为当时在项目中,没来的及做很很多笔记。后来项目结束了,我也没写总结文档。已经过去好久了。但最近突然又对这个ORM 工具感兴趣。因为接下来自己的项目中很有可能采用这个ORM工具。所以在此重新温习了一下 mybatis, 因此就有了这个系列的 mybatis 教程. 什么是mybatis MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录. orm工具的基本思想 无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点: 1. 从配置文件(通常是XML配置文件中)得到 sessionfactory. 2. 由sessionfactory 产生 session 3. 在session 中完成对数据的增删改查和事务提交等. 4. 在用完之后关闭session 。 5. 在java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。 mybatis实战教程(mybatis in action)之一:开发环境搭建 mybatis 的开发环境搭建,选择: eclipse j2ee 版本,mysql 5.1 ,jdk 1.7,mybatis3.2.0.jar包。这些软件工具均可以到各自的官方网站上下载。 首先建立一个名字为 MyBaits 的 dynamic web project 1. 现阶段,你可以直接建立java 工程,但一般都是开发web项目,这个系列教程最后也是web的,所以一开始就建立web工程。 2. 将 mybatis-3.2.0-SNAPSHOT.jar,mysql-connector-java-5.1.22-bin.jar 拷贝到 web工程的lib目录. 3. 创建mysql 测试数据库和用户表,注意,这里采用的是 utf-8 编码 创建用户表,并插入一条测试数据 程序代码 程序代码 Create TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `userName` varchar(50) DEFAULT NULL, `userAge` int(11) DEFAULT NULL, `userAddress` varchar(200) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; Insert INTO `user` VALUES ('1', 'summer', '100', 'shanghai,pudong'
### 回答1: 在 Spring 中,@Configuration 注解用于标记一个类是配置类,其中定义了一些 Bean 的创建和配置方法。当 Spring 容器扫描到这个类时,会自动创建该类的实例,并将其中的 Bean 注册到容器中。 但是,如果一个类中没有定义任何 Bean 的创建和配置方法,那么这个类就不需要使用 @Configuration 注解。在这种情况下,Spring 容器扫描到这个类时,只会实例化该类,并不会将任何 Bean 注册到容器中。 所以,如果你的 springconfig 类中没有定义任何 Bean 的创建和配置方法,那么就不需要加上 @Configuration 注解。 ### 回答2: 在使用Spring框架时,通常需要创建一个配置类来注入和管理Bean。对于这些配置类,我们可以使用`@Configuration`注解来表示这是一个配置类。 然而,对于Spring配置类来说,不是必须加上`@Configuration`注解。这是因为Spring框架的设计初衷是要简化配置,并提供足够的灵活性来满足不同的需求。 在Spring中,配置类主要用来定义Bean,这些Bean将被Spring容器所管理。Spring容器会扫描这些配置类,识别其中的Bean定义,并进行相应的实例化和依赖注入。 当一个类被定义为配置类时,它的对象将被视为Bean,并由Spring容器进行管理。在配置类中,我们可以使用`@Bean`注解来定义一个Bean,并使用`@Autowired`注解来实现依赖注入。 但是,并非所有的类都需要被定义为配置类。有时,我们可能只是编写了一些普通的类,不需要被Spring容器所管理,也不需要进行依赖注入。这种情况下,我们就不需要添加`@Configuration`注解。 另外,在某些情况下,我们可能希望在应用程序的多个模块之间进行配置共享。此时,我们可以将这些共享配置放在一个或多个配置类中,然后使用`@Import`注解将它们引入到其他配置类中。这样可以提高代码的组织性和可维护性。 总的来说,Spring框架允许我们根据需要选择是否将类定义为配置类。在大多数情况下,将需要进行配置和Bean管理的类定义为配置类将是一个好的选择,但并不是强制要求。这给了我们更大的灵活性和可定制性来满足不同的应用需求。 ### 回答3: 在Spring框架中,使用@Configuration注解在类上表示该类是一个配置类,用于定义应用程序的配置信息和Bean的创建方式。但是,并不是所有Spring配置类都需要显示地加上@Configuration注解。 首先,对于使用注解方式的Spring配置,如@ComponentScan、@Import等,如果类上已经使用了这些注解,那么就不需要再加上@Configuration注解。因为这些注解本身就隐含了@Configuration的作用,告诉Spring容器这个类是一个配置类,会被Spring解析并根据配置信息创建相应的Bean。 其次,对于使用XML方式的Spring配置,通常不需要加上@Configuration注解,因为XML本身就能够表示配置信息,不需要使用注解来进行定义。对于这种情况,可以使用@ImportResource注解来导入XML配置文件,让Spring容器能够读取和解析配置文件并创建相应的Bean。 最后,对于普通的Java类,如果没有任何配置信息或特殊的处理逻辑,也无需加上@Configuration注解。因为Spring默认会将这些普通的类看作是简单的POJO类,只有在其他注解的约束下才会被Spring容器扫描和创建Bean对象。 总结来说,Spring配置类上不用加@Configuration注解的原因是:已经使用了其他的注解表示配置信息、使用了XML配置或者是为了简化配置而省略了注解。可以根据具体情况选择是否加上@Configuration注解,但在大部分情况下,可以根据实际需要决定是否加上@Configuration注解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值