梦想之路(四):自制IOC之二

       首先要道歉,上篇文章忘记发了两个类,而且没有介绍我的小框架如何使用,在这章补上。另外大家如果看了我之前的文章也许会对时间产生疑问,在此要说明一下:第一篇博文开始时交代的时间为4月13号,也就是昨天。博文是后补的,所以发的比较密。

        在此先把上篇文章遗漏的两个类奉上。

@Bean

package com.mxsl.framework.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import com.mxsl.framework.beans.BeanType;

/**
 * 用于标注需要注册的Bean
 * @author gr
 *
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface Bean {
    /**
     * Bean的ID
     * @return
     */
    String value() default "";

    /**
     * Bean作用域,默认单例
     * @return
     */
    BeanType type() default BeanType.SINGLETON;
}



@Inject

package com.mxsl.framework.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 表示此字段需要注入
 * @author gr
 *
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Inject {
	
	/**
	 * 需要注入的Bean的ID,如果为空则默认为字段名
	 * @return
	 */
	String value() default "";
}

        因为上篇文章未能介绍此框架的使用方式,在此补上。

        首先此框架的注入方式与Spring类似,可以使用注解也可以使用配置文件,但各方面功能相对单一很多。

        配置文件就算一个JSON文件,默认会读取/WEB-INF/Config.json文件,会读取到文件中需要扫描的路径以及配置的Bean属性。格式如下:

{
	scanPath:'需要扫描的路径,如com.mxsl',
	beans:[{
		id:'生成Bean的Id,跟Spring中Bean的ID是一个含义,如userService',
		classes:'Bean对应的Class,如com.mxsl.framework.test.UserService',
		//注入属性分为两种,一种是Bean的引用,一种是初始化的		
                //如下则为初始化值类型
		values:{
		//变量名:变量值,如下
			id:'001'
		}
	},{
		id:'userAction',
		classes:'com.mxsl.framework.test.UserAction',
                //如下则为注入Bean,同样是变量名:Bean的ID
                members:{
			userService:'userService'
		}
	}]
        以上为配置文件方式声明Bean,使用注解则为在类上加入@Bean的注解。如果需要声明ID则给予注解值即可,另外@Bean的type为Bean的作用域,默认为单例。

        对于需要注入的字段,则加上注解@Inject,此注解的值为需要注入的Bean的ID,如果与字段名相同则可以不填。

        配置方式就如上两种,看官觉得能满足你的需求么?如有问题或指教,欢迎评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值