springMVC 注入对象失败
2017-10-17 14:45
483 查看
最近有空想学着自己搭建一个SpringMVC的项目,因为之前都没咋学习相关的知识,所以在搭建过程中遇到了很多问题,其中第一问题就折腾了我好长时间,现在把它记录下来。
我是跟着这个博客开始进行搭建的,http://jinnianshilongnian.iteye.com/blog/1594806
1、下载所需的包
spring相关的jar包,可以从这个网址进行下载 :http://repo.spring.io/release/org/springframework/spring/
需要添加Apache commons logging日志,下载网址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
需要添加jstl标签库支持,下载网址(这个下载的时候需要看清楚,容易下错):http://www.downcc.com/soft/35705.html
2、就开始跟着博客配置环境,具体怎么配置,那个博客里边写的很清楚,我就只截一下我配置好了之后的图。
web.xml
servlet.xml的配置
controller
hello.jsp页面
我的页面上也显示出了"hello world"的信息,表明我配置成功了。
但是 这只是个简单的页面跳转,我希望能够将数据库连接起来,最简单的就是使用 spring的jdbcTempate,又是一通百度,开始进行配置。
我使用的是mySQL数据库
连接数据库的jar包:
mysql-connector-java-5.1.30-bin.jar
实体类:
Dao
controller
需要在servlet.xml中添加配置
配完之后 运行,结果报空指针,debug一看,发现是我的Controller里面的studentDao没有注入成功,一直为空,我是左看右看啊,感觉都配对了,但是就是没有注入进去。然后我就用ClassPathXmlApplicationContext 的方式,加载 了一下我的配置文件
发现这个Controller里面的studentDao成功注入了,这证明我写是没有写错,是哪里配置错了。后来发现是因为
解决方式,上面那个就不用了,直接删掉,下面那配置上studentDao.
运行结果:
一路百度,不容易啊
我是跟着这个博客开始进行搭建的,http://jinnianshilongnian.iteye.com/blog/1594806
1、下载所需的包
spring相关的jar包,可以从这个网址进行下载 :http://repo.spring.io/release/org/springframework/spring/
需要添加Apache commons logging日志,下载网址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
需要添加jstl标签库支持,下载网址(这个下载的时候需要看清楚,容易下错):http://www.downcc.com/soft/35705.html
2、就开始跟着博客配置环境,具体怎么配置,那个博客里边写的很清楚,我就只截一下我配置好了之后的图。
web.xml
servlet.xml的配置
controller
hello.jsp页面
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>Hello World</title> </head> <body> ${message} </body> </html>
我的页面上也显示出了"hello world"的信息,表明我配置成功了。
但是 这只是个简单的页面跳转,我希望能够将数据库连接起来,最简单的就是使用 spring的jdbcTempate,又是一通百度,开始进行配置。
我使用的是mySQL数据库
连接数据库的jar包:
mysql-connector-java-5.1.30-bin.jar
实体类:
public class Student extends JdbcDaoSupport { private String sno; private String sname; private String ssex; private String sbirthday; private String sclass; public String getSno() { return sno; } public void setSno(String sno) { this.sno = sno; } public String getSname() { return sname; } public void setSname(String sname) { this.sname = sname; } public String getSsex() { return ssex; } public void setSsex(String ssex) { this.ssex = ssex; } public String getSbirthday() { return sbirthday; } public void setSbirthday(String sbirthday) { this.sbirthday = sbirthday; } public String getSclass() { return sclass; } public void setSclass(String sclass) { this.sclass = sclass; } }
Dao
public class StudentDao{ private JdbcTemplate jdbcTemplate; public JdbcTemplate getJdbcTemplate() { return jdbcTemplate; } public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { this.jdbcTemplate = jdbcTemplate; } public Collection<Student> doquery() { String sql = "SELECT SNO,SNAME,SSEX,SBIRTHDAY,CLASS FROM student"; return jdbcTemplate.query(sql, new RowMapper() { public Object mapRow(ResultSet rs, int num) throws SQLException { Student stu = new Student(); stu.setSno(rs.getString("SNO")); stu.setSname(rs.getString("SNAME")); stu.setSsex(rs.getString("SSEX")); stu.setSbirthday(rs.getString("SBIRTHDAY")); stu.setSclass(rs.getString("CLASS")); return stu; } }); } }
controller
public class HelloWorldController implements Controller { private StudentDao studentDao; public StudentDao getStudentDao() { return studentDao; } public void setStudentDao(StudentDao studentDao) { this.studentDao = studentDao; } @Override public ModelAndView handleRequest(HttpServletRequest req, HttpServletResponse resp) throws Exception { ModelAndView mv = new ModelAndView(); Collection<Student> stuList = studentDao.doquery(); mv.addObject("stuList", stuList); mv.setViewName("hello"); return mv; } }
需要在servlet.xml中添加配置
<!-- 获取数据源 --> <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="root" /> </bean> <!-- jdbc注入 --> <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate"> <property name="dataSource" ref="dataSource"></property> </bean> <!-- dao注入 --> <bean id="studentDao" class="cn.javass.chapter2.dao.StudentDao"> <property name="jdbcTemplate"> <ref bean="jdbcTemplate"></ref> </property> </bean> <!--定义控制器--> <bean id="helloController" class="cn.javass.chapter2.controller.HelloWorldController"> <property name="studentDao"> <ref bean="studentDao"/> </property> </bean>
配完之后 运行,结果报空指针,debug一看,发现是我的Controller里面的studentDao没有注入成功,一直为空,我是左看右看啊,感觉都配对了,但是就是没有注入进去。然后我就用ClassPathXmlApplicationContext 的方式,加载 了一下我的配置文件
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("spring-mvc.xml"); context.start(); HelloWorldController hController = (HelloWorldController) context.getBean("helloController");
发现这个Controller里面的studentDao成功注入了,这证明我写是没有写错,是哪里配置错了。后来发现是因为
解决方式,上面那个就不用了,直接删掉,下面那配置上studentDao.
运行结果:
一路百度,不容易啊
相关文章推荐
- SpringMVC 使用注解注入生成接口实现类对象
- Spring源码分析--@Autowired注入的不是代理对象,导致事务回滚失败(@Transactional无效)
- 静态方法调用注入对象(springMvc)
- springmvc 转springboot,注入失败的问题
- springmvc出现mapper注入失败的几种可能
- springMVC利用WebArgumentResolver为controller注入当前用户对象参数
- SSM框架---容器创建注入对象失败
- springMVC mybatis dao接口(mapper接口)注入失败
- springMVC利用WebArgumentResolver为controller注入当前用户对象参数
- Spring + SpringMVC其他类依赖注入失败
- springmvc注入失败
- springMVC利用WebArgumentResolver为controller注入当前用户对象参数
- spring与mybaties整合注入mapper bean对象失败
- springMVC mybatis整合dao接口(mapper接口) spring注入失败
- $.ajaxSetup 设置contentType 引起的springmvc 注入值失败
- SpringMvc中自动注入失败原因
- filter过滤器解决SpringMVC框架bean注入失败问题
- springMVC项目启动时出现bean注入失败的情况:Error creating bean with name 'XXX': Injection of autowired dependencies
- 解决springMVC中restful的POST请求时接受json对象转换pojo对象失败问题
- Bean对象注入失败 .NoSuchBeanDefinitionException: No qualifying bean of type..