• 游客, 欢迎您来到九域资源社区,如果您是新人,请前往 论坛公告 板块查看新人引导教程 或者 点我打开
    如果您发现没有下载许可, 请先验证邮箱再进行下载;金锭可通过每日登陆或资源出售获取,目前没有其他渠道可获取。
BukkitIoc —— 托管你的Bean

Bukkit BukkitIoc —— 托管你的Bean 1.1

没有下载权限
◆ 支持核心
Spigot,CatServer
◆ 插件前置
◆ 游戏版本
1.12.2+
闲着无聊倒腾出来的东西,大概有点作用吧

平时写插件的时候,代码可能充斥着下面这坨东西

``` java
var permission = javaPlugin#getConfig("req-permission")
.......
```

这样重复度高的代码,你可以使用 BukkitIoc 干掉它!
BukkitIoc以注解代替这些繁琐的工作

快速开始


在plugin.yml中加入 `depend: BukkitIoc` 后,新建一个配置类
使用@ComponentScan(xxx)注解,xxx表示IOC容器托管的作用域

例如:

Java:
@ComponentScan("com.meteor.kingdomssync")
public class BaseConfig {
}

之后在onEnable钩子中调用

```
BukkitIocManager.bukkitIocManager.register(this,BaseConfig.class);
```

到这里,便完成了。 在register后,bukkitioc默认会将你的JavaPlugin实例托管
你可以在任意地方使用

Java:
    @Autowired
    private KingdomsSync plugin;

更多的注入请参考下文

支持的注入方式

1. @Value(name="path") : 基本类型注入

字符串浮点数等基本类型,可以通过@Value注解注入(来自config.yml)

比如这样的yaml结构:
代码:
shop:
  title: '商店'
  player: 20
对应的组件实现

Java:
import com.meteor.bukkitioc.annotation.Component;
import com.meteor.bukkitioc.annotation.Value;

@Component("shop")
public class Shop {

    @Value("shop.title")
    private String title;

    @Value("shop.player")
    private int player;
}

PropertyResolver默认提供了float,integer等类型的转换,如果你需要将读取字符串转换为其他类型

可以通过PropertyResolver.registerConvert(Class<?> classType,Function<String,Object> function)注册

2. @Bean: 工厂方法

Java:
@Configuration
public class ShopItemFactory {

    // 工厂方法注入
    @Bean(value = "fake_dick")
    public ShopItem getFakeDick(){
        return new ShopItem("fake_dick",20000,"a fake dick");
    }

}

被@Configuration类中的@Bean注解方法所返回的对象,会被BukkitIoc全局唯一托管

3. @Autowired: 自动注入

当你要在其他地方使用注册的Bean时,只需要使用@Autowired 注入
Java:
import com.meteor.bukkitioc.annotation.Autowired;
import com.meteor.bukkitioc.annotation.Configuration;
import com.meteor.bukkitiocexample.components.ShopItem;

@Configuration
public class BaseConfig {
    @Autowired(name = "fake_dick")
    public static ShopItem fakeDick;
}

另外,也可以在构造器和set方法中使用

其他
如果你熟悉Spring的话,这个项目提供了仿Spring最小的IOC容器实现,你完全可以像使用Spring一样熟悉它
(请看AnnotationConfigApplicationContext类)

开源地址: https://github.com/meteorOSS/BukkitIoc

有任何问题欢迎加入群聊653440235讨论
作者
meteorrr
下载
2
查看
612
首次发布
最后更新
评分
0.00 星 0 星

来自meteorrr的更多资源

分享资源

最新更新

  1. 1.1

    取消监听插件启动事件来注册上下文