2016-06-01 31 views
0

不明白在java spring启动应用程序中如何正确使用beans.groovy。 我想改变我的java bean中的一些值,如xml,throught .groovy。我如何做到这一点?我尝试: 我有主类:java中的自动装入beans.groovy弹簧启动

@SpringBootApplication(scanBasePackages = "proj") 
public class Application { 
    public static void main(String[] args) { 
     Object[] sources = {Application.class, new ClassPathResource("beans.groovy")}; 
    SpringApplication.run(sources , args); 
    } 
} 

和一些testBean这个。有2场名和姓,我想初始化trhought常规:

@Component 
public class TestBean { 
    public String name; 
    public String surname; 

    TestBean(){ 
     System.out.println("INIT!!!!!"); 
    } 
} 

,我想通过的Groovy bean初始化TesbBean。我在资源增加somebeans.groovy文件,并添加在它: 我想自动装配它在我@Controller喜欢它:@RestController

public class StaticContect { 
@Autowired 
TestBean testBean; 
@RequestMapping(value = "test" , method = RequestMethod.GET) 
    public void test() { 
     System.out.println(testBean.name); 
     System.out.println(testBean.surname); 
    } 
} 

,我somefile.groovy增加资源与此内容:

beans { 
     TestBean(){ 
     name = "nametest" 
     surname = "surname" 
    } 
} 

但我有null int名和姓。

+0

从testBean这个定义 –

+0

删除@Component注解,但是比我有例外:org.springframework.beans.factory.BeanCreationException:错误创建名为 'staticContect' 豆:注射自动装配依赖性失败;嵌套的异常是org.springframework.beans.factory.BeanCreationException:无法自动装配字段:proj.config.TestBean – dzrkot

+0

在主要方法中在ClassPathResource中添加somefile.groovy –

回答

1

beans.groovy应该

import proj.config.TestBean 

beans { 
     testBean(TestBean, name = "nametest", surname = "surname") 
}