zoukankan      html  css  js  c++  java
  • Spring入门(8)-基于Java配置而不是XML

    Spring入门(8)-基于Java配置而不是XML

    本文介绍如何应用Java配置而不是通过XML配置Spring。

    0. 目录

    1. 声明一个简单Bean
    2. 声明一个复杂Bean

    1. 声明一个简单Bean

    还是需要简单的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"
    	xmlns:context="http://www.springframework.org/schema/context"
    	xsi:schemaLocation="http://www.springframework.org/schema/beans 	
    	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
    	http://www.springframework.org/schema/context
    	http://www.springframework.org/schema/context/spring-context-3.0.xsd"
    	>
    	<context:component-scan base-package="com.chzhao.springtest"/>
    </beans>
    

    声明一个配置类

    package com.chzhao.springtest;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MyConfig {
    	@Bean
    	public App app1() {
    		return new App();
    	}
    }
    
    

    通过@Configuration声明配置类,通过@Bean声明Bean。其中app1就是Bean的ID。
    可以通过这个app1值机获得Bean

    package com.chzhao.springtest;
    
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class Main {
    	public static void main(String[] args) {
    		@SuppressWarnings("resource")
    		ApplicationContext act = new ClassPathXmlApplicationContext(
    				"applicationContext.xml");		
    		App a = (App) act.getBean("app1");
    		a.showMsg();
    	}
    }
    

    2. 声明一个复杂Bean

    如果一个Bean的定义基于另外一个Bean,也很容易实现。
    首先看app定义

    package com.chzhao.springtest;
    
    public class App {
    	public App(IPersonBll personBll) {
    		this.personBll = personBll;
    	}
    
    	private IPersonBll personBll;
    
    	public void showMsg() {
    		this.personBll.show();
    	}
    }
    
    
    package com.chzhao.springtest;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MyConfig {
    	@Bean
    	public IPersonBll bll1() {
    		return new PersonBll();
    	}
    
    	@Bean
    	public App app1() {
    		return new App(bll1());
    	}
    }
    
  • 相关阅读:
    创建vlan 和 节点vlan 连通性排查
    FRRouting SR-MPLS
    mpls over gre
    linux mpls
    交换机vlan
    neutron subnet + router
    neutron 层次绑定 +binding_levels
    frrouting命令补全 + 启动失败排查
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    游戏服务器设计 Unity3d + photon + grpc + nodejs + postgis/postgresql
  • 原文地址:https://www.cnblogs.com/wardensky/p/4199472.html
Copyright © 2011-2022 走看看