主题:springboot2-plus Function疑问

Igisvity 2018年03月13日 336

现象如下:

我在程序中创建了function

@Componentpublic class ProjectFunction implements Function {

  @Autowired   JjProjectService jjProjectService;   
  @Autowired   CorePlatformService platFormService;   
  public Object call(Object[] paras, Context ctx) {
      String type = null;      
      if(paras.length!=0) {
         type = (String)paras[0];      }
      int userid= platFormService.getCurrentUser().getId().intValue();   
   return jjProjectService.getJjprojectsByUserid(userid);   
  }
  

}


在 配置文件中注册

FN.jjpro.project = com.ibeetl.jjpro.lihua.function.ProjectFunction


而在 html tag 中调用时,service 均为null

Clipboard Image.png


在作者项目中其他的Function 均可以得到service 我这个未能得到,请教大神,我这是哪里配置错误或者漏掉了么?

闲大赋 2018年03月13日

不能这么注册,参考BeetlConf 注册方式,这样才能是spring管理的bean

Igisvity 2018年03月14日

我按照你的方法,在java 中注册了,

在 service 中注册

Clipboard Image.png

或者在controller 中注册

Clipboard Image.png


都可以找到这个function ,但是function 中调用的service都是NullClipboard Image.png


我也尝试在beetlConf中注册,但是我的是新开的子系统,若在子系统中写beetlconf 则覆盖了原系统中,原系统无法用其中function,若原系统写 function ,则无法使用子系统的service,求大神指教。

Igisvity 2018年03月14日

已经解决, 书中 79页关于子项目配置,感谢

  • 闲大赋 :咋解决的?(2018年03月14日)
Igisvity 2018年03月14日

在子项目中增加这个Conf,和主项目没有冲突,

conf中不能使用

@Configuration
@AutoConfigureAfter(JasonConfig.class)

....
  @Bean
    public BeetlTemplateCustomize beetlTemplateCustomize() {
        return new BeetlTemplateCustomize() {
import javax.annotation.PostConstruct;

@Configuration
public class JJConf {
    @Autowired
    GroupTemplate groupTemplate;

    @Autowired
    ProjectFunction projectFunction;

    @PostConstruct
    public void config(){
        groupTemplate.registerFunction("jjpro.project",projectFunction);
    }
}
  • 闲大赋 :赞一个(2018年03月15日)