文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring 注入Bean时为null

2024-04-02 19:55

关注

Spring.xml

<util:properties id="db" location="classpath:jdbc.properties"/>

<context:component-scan base-package="com.xms" />

<mvc:annotation-driven />

<!-- 声明DataSource -->

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName" value="#{db.driver}" />

<property name="url" value="#{db.url}" />

<property name="username" value="#{db.user}"/>

<property name="password" value="#{db.password}"/>

</bean>

<!-- 导入SpringJDBC -->

<bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate">

<!-- 引入数据源 -->

<!-- 

<property name="dataSource" ref="dataSource"></property>

-->

<constructor-arg>

<ref bean="dataSource"/>

</constructor-arg>

</bean>

<!-- 实例化dao和service接口 -->

<bean id="loginDao" class="com.xms.dao.LoginDaoImpl">

<!-- 注入Spring的jdbcTemplate -->

<property name="jdbcTemplate" ref="jdbcTemplate"></property>

</bean>

<bean id="loginService" class="com.xms.service.loginServiceImpl">

<property name="loginDao" ref="loginDao"></property>

</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="prefix" value="/WEB-INF/jsp/" />

<property name="suffix" value=".jsp" />

</bean>


jdbc.properties

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://127.0.0.1:3306/xmscode?useUnicode=true&characterEncoding=utf8

user=root

password=1234


controller:

@Controller

@RequestMapping("login")

public class LoginController {

private LoginService loginService;

public LoginService getLoginService() {

return loginService;

}

public void setLoginService(LoginService loginService) {

this.loginService = loginService;

}

@RequestMapping("tologin")

public String toLogin(){

return "login";

}

@RequestMapping("login")

public String login(User user, HttpServletRequest request) throws Exception{

//该行报错   loginService为null

                User u = loginService.checkInfo(user);

HttpSession session = request.getSession();

session.setAttribute("nickname", u.getNickname());

return "index";

}

}

dao接口:

public interface LoginDao {

//根据email查找User

public User findUserByEmail(User user) throws Exception;

}

daoImpl:

@Repository

public class LoginDaoImpl implements LoginDao {

private JdbcTemplate jdbcTemplate;

public JdbcTemplate getJdbcTemplate() {

return jdbcTemplate;

}


public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {

this.jdbcTemplate = jdbcTemplate;

}


public User findUserByEmail(User user) throws Exception {

User u = null;

String sql = "select * from xc_user where email=?";

Object[] params = new Object[]{user.getEmail()};

u = jdbcTemplate.queryForObject(sql, (RowMapper<User>) new User(), params);

return u;

}

}

service接口:

@Service

public interface LoginService {

public User checkInfo(User user) throws Exception;

}

service实现类:

@Service

public class loginServiceImpl implements LoginService{


private LoginDao loginDao;

public LoginDao getLoginDao() {

return loginDao;

}


public void setLoginDao(LoginDao loginDao) {

this.loginDao = loginDao;

}


public User checkInfo(User user) throws Exception{

System.out.println("loginDao"+loginDao);

User u = null;

u = loginDao.findUserByEmail(user);

if(u==null){

//用户名错误

throw new EmailErrorException("用户名错误");

}else if(!u.getPassword().equals(user.getPassword())){

//密码错误

throw new PasswordErrorException("密码错误");

}else{

//用户名和密码正确

return u;

}

}

}


阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯