当前位置: 首页 > news >正文

javaConfig是什么

先放个从xml转到javaConfig的例子:

xml:

    <?xml version="1.0" encoding="UTF-8"?>   
    <beans xmlns="http://www.springframework.org/schema/beans"  
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
        xsi:schemaLocation="http://www.springframework.org/schema/beans   
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd">   
 
        <bean id="button" class="javax.swing.JButton">   
            <constructor-arg value="Hello World" />   
        </bean>   
 
        <bean id="anotherButton" class="javax.swing.JButton">   
            <property name="icon" ref="icon" />   
        </bean>   
 
        <bean id="icon" class="javax.swing.ImageIcon">   
            <constructor-arg>   
                <bean class="java.net.URL">   
                  <constructor-arg value="http://morevaadin.com/assets/images/learning_vaadin_cover.png" />   
                </bean>   
            </constructor-arg>   
        </bean>   
    </beans>  

javaConfig:

    import java.net.MalformedURLException;  
    import java.net.URL;  
    import javax.swing.Icon;  
    import javax.swing.ImageIcon;  
    import javax.swing.JButton;  
    import org.springframework.context.annotation.Bean;  
    import org.springframework.context.annotation.Configuration;  
 
    @Configuration  
    public class MigratedConfiguration {  
        @Bean  
        public JButton button() {  
            return new JButton("Hello World");  
        }  
 
        @Bean  
        public JButton anotherButton(Icon icon) {  
            return new JButton(icon);  
        }  
 
        @Bean  
        public Icon icon() throws MalformedURLException {  
            URL url = new URL(  
                    "http://morevaadin.com/assets/images/learning_vaadin_cover.png");  
            return new ImageIcon(url);  
        }  
    }  

用法非常简单:

1.用@Configuration注解JavaConfig类,

2.用每个方法来表示Bean并使用@Bean注解方法。

3.每个方法名代表XML配置文件中的name


注意在Web环境中,需要在web.xml中加入如下代码:

<context-param>  
    <param-name>contextClass</param-name>  
    <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>  
</context-param>  
<context-param>  
    <param-name>contextConfigLocation</param-name>  
    <param-value>com.packtpub.learnvaadin.springintegration.SpringIntegrationConfiguration</param-value>  
</context-param> 

Spring JavaConfig是Spring社区的产品,它提供了一种纯Java方法来配置Spring IoC容器。因此,它有助于避免使用XML配置。

相关文章:

  • Spring Boot自动配置原理 -- java面试
  • 如何理解 Spring Boot 中的 Starter -- java面试
  • 什么是嵌入式服务器?为什么要使用嵌入式服务器? -- java面试
  • mybatis的介绍以及优缺点 -- java面试
  • MyBatis 与Hibernate 有哪些不同 -- java面试
  • #{}和${}的区别是什么 -- java面试
  • idea上传到github以及移除文件操作
  • Modifier ‘private‘ not allowed here
  • 验证线程池扩展能力的测试方法的问题
  • win10 wifi有时候搜索不到
  • Mac 命令行关闭和打开蓝牙
  • AirPods Pro 卡顿或突然没声音的原因之一
  • 学习Git
  • git branch -f的作用
  • 谷歌浏览器mac切换标签快捷键
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【剑指offer】让抽象问题具体化
  • angular2 简述
  • ES6 ...操作符
  • js对象的深浅拷贝
  • MySQL数据库运维之数据恢复
  • rc-form之最单纯情况
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SpiderData 2019年2月23日 DApp数据排行榜
  • XML已死 ?
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 复杂数据处理
  • 基于web的全景—— Pannellum小试
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 区块链将重新定义世界
  • 全栈开发——Linux
  • 如何合理的规划jvm性能调优
  • 如何使用Mybatis第三方插件--PageHelper实现分页操作
  • 入口文件开始,分析Vue源码实现
  • 线性表及其算法(java实现)
  • 用element的upload组件实现多图片上传和压缩
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • Nginx实现动静分离
  • 没有任何编程基础可以直接学习python语言吗?学会后能够做什么? ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #define用法
  • #stm32驱动外设模块总结w5500模块
  • $refs 、$nextTic、动态组件、name的使用
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (Redis使用系列) Springboot 在redis中使用BloomFilter布隆过滤器机制 六
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (七)Java对象在Hibernate持久化层的状态
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (一)为什么要选择C++
  • .jks文件(JAVA KeyStore)
  • .NET Micro Framework初体验
  • .net(C#)中String.Format如何使用
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型
  • .net企业级架构实战之7——Spring.net整合Asp.net mvc