我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spring 注入Bean时为null

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spring 注入Bean时为null

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

Spring 注入Bean时为null

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Spring怎么为singleton bean注入prototype bean

本篇内容介绍了“Spring怎么为singleton bean注入prototype bean”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
2023-07-02

spring怎么自定义bean注入

在Spring中,我们可以使用两种方式来自定义Bean的注入:使用注解方式:通过在Bean定义类上添加注解来告诉Spring容器如何创建和注入这个Bean。常用的注解包括:@Component、@Service、@Repository、@C
2023-10-26

Spring bean有哪几种注入方式

这篇文章主要讲解了“Spring bean有哪几种注入方式”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Spring bean有哪几种注入方式”吧!目录一、Set方式注入pojo层:1.xm
2023-06-20

spring注入bean的方式有哪些

Spring注入Bean的方式有以下几种:1. 构造器注入:通过构造器参数来注入依赖的Bean。2. Setter方法注入:通过调用Bean的Setter方法来设置依赖的Bean。3. 接口注入:通过实现接口来注入依赖的Bean。4. 注解
2023-09-05

Spring Bean三种注入方式详解

在Spring容器中为一个bean配置依赖注入有三种方式: 使用属性的setter方法注入 这是最常用的方式; 使用构造器注入; 使用Filed注入(用于注解方式).Field注入是最常见的一种方式,可以采用 @Autowir
2023-05-30

Spring在多线程下@Resource注入为null怎么解决

本篇内容主要讲解“Spring在多线程下@Resource注入为null怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring在多线程下@Resource注入为null怎么解决”吧!
2023-06-29

Spring中动态注入Bean的方法

这篇文章将为大家详细讲解有关Spring中动态注入Bean的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、基于标注的方式注入实例需要在Bean初始化之时,其依赖的对象必须初始化完毕。如果被注入的对
2023-05-30

Spring Bean注册与注入实现方法详解

首先,要学习Spring中的Bean的注入方式,就要先了解什么是依赖注入。依赖注入是指:让调用类对某一接口的实现类的实现类的依赖关系由第三方注入,以此来消除调用类对某一接口实现类的依赖。Spring容器中支持的依赖注入方式主要有属性注入、构造函数注入、工厂方法注入
2022-11-13

Spring怎么控制Bean注入的顺序

今天小编给大家分享一下Spring怎么控制Bean注入的顺序的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。简介说明首先需要说
2023-07-02

Spring中如何将值注入到Bean中

这篇文章给大家介绍Spring中如何将值注入到Bean中,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在Spring中,有三种方式注入值到 bean 属性。正常的方式快捷方式“p” 模式新建一个User类,它包含use
2023-05-31

Spring中Bean注入源码示例解析

这篇文章主要为大家介绍了Spring中Bean注入源码示例解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2023-01-15

编程热搜

目录