Java SpringMVC。Bean空值
我的控制器有一个自动连线字段“resultados”Java SpringMVC。Bean空值,java,spring,javabeans,Java,Spring,Javabeans,我的控制器有一个自动连线字段“resultados” @控制器 公共类MyController{ @自动连线 私有游标公使游标公使; @自动连线 私有列表结果; @RequestMapping(value=“consultarArticulos.html”) 公共模型和视图顾问Articulos(){ ModelAndView ModelAndView=新的ModelAndView(“咨询顾问”); addObject(“resultados”,resultados); 返回模型和视图; }
@控制器
公共类MyController{
@自动连线
私有游标公使游标公使;
@自动连线
私有列表结果;
@RequestMapping(value=“consultarArticulos.html”)
公共模型和视图顾问Articulos(){
ModelAndView ModelAndView=新的ModelAndView(“咨询顾问”);
addObject(“resultados”,resultados);
返回模型和视图;
}
我在配置类中定义了bean。方法“cursorodelegado.consultarArticulos()”返回三个元素的集合,但bean总是空的。这里还有其他类,但不需要
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.myapp")
public class MyConfig extends WebMvcConfigurerAdapter {
@Bean
public List<Articulo> resultados()
{
try {
return cursoDelegado.consultarArticulos();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
@配置
@EnableWebMvc
@组件扫描(basePackages=“com.myapp”)
公共类MyConfig扩展WebMVCConfigureAdapter{
@豆子
公共列表resultados()
{
试一试{
返回cursoDelegado.consultarArticulos();
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}
}
}
抱歉,我没有粘贴所有代码,但应用程序运行并声明了所有bean。问题是“resultados”
我更改代码:
@Autowired //MyControllerClass
private @Resource(name="bean1")List<Articulo> resultados;
@Bean(name="bean1")//MyConfigClass
public List<Articulo> resultados()
@Autowired//MyControllerClass
private@Resource(name=“bean1”)列表resultados;
@Bean(name=“bean1”)//MyConfigClass
公共列表resultados()
现在没问题了。接口列表有任何问题,但我不知道原因。如果有人能告诉我这个问题:)@Bean
公共列表结果(CursoDelegate cursoDelegado)
{
试一试{
List resultados=new ArrayList();
resultados=cursoDelegado.consultarArticulos();
返回resultados;
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}
}
MyConfig中未定义/注入Cursorodelegado,因此Cursorodelegado.consultarArticulos()将始终引发NullPointerException。您捕获该异常,因此它在应用程序中不可见。控制台输出(例如printStackTrace)应在服务器日志中可见
最好直接在注入Cursorodelegado的控制器中使用cursorodelegado.consultarArticulos()。@Configuration
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.myapp")
public class MyConfig extends WebMvcConfigurerAdapter {
@Bean
public CursoDelegate cursoDelegado() {
return new CursoDelegateImpl();
}
@Bean
public List<Articulo> resultados()
{
try {
return cursoDelegado().consultarArticulos();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}
@EnableWebMvc
@组件扫描(basePackages=“com.myapp”)
公共类MyConfig扩展WebMVCConfigureAdapter{
@豆子
公共光标Legate cursorodelegado(){
返回新的cursorodelegateimpl();
}
@豆子
公共列表resultados()
{
试一试{
返回cursorodelegado().consultarArticulos();
}捕获(例外e){
//TODO自动生成的捕捉块
e、 printStackTrace();
返回null;
}
}
}
MyController.consultarArticulos和cursorodelegate.consultarArticulos
可能会混淆实际问题所在的方法。Postcursorodelegate
对不起,我不会复制所有代码。应用程序运行,但结果始终为空
@Bean
public List<Articulo> resultados(CursoDelegate cursoDelegado)
{
try {
List<Articulo> resultados = new ArrayList<Articulo>();
resultados = cursoDelegado.consultarArticulos();
return resultados;
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.myapp")
public class MyConfig extends WebMvcConfigurerAdapter {
@Bean
public CursoDelegate cursoDelegado() {
return new CursoDelegateImpl();
}
@Bean
public List<Articulo> resultados()
{
try {
return cursoDelegado().consultarArticulos();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
return null;
}
}
}