Spring属性注入失败

cui_Sunny 2013-03-28 01:36:37
在Action中的属性无法成功注入,在使用的时候报空指针。
jar包前前后后检查了几遍,没有发现少的,关键的struts-spring-plugin也导入了的,
applicationContext.xml中也配置了注解扫描的。但是得不到属性对象。麻烦各位有相关想法的朋友指点下。我在这里感激不尽。
...全文
386 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
老猫烧须 2015-06-30
  • 打赏
  • 举报
回复
我也遇到了同样的问题 啊
wuqicheng1992 2014-04-15
  • 打赏
  • 举报
回复
我也遇到了,包没有掉,配置没有错,set,get方法全有,运行时候注入的biz对象是空
cui_Sunny 2013-03-28
  • 打赏
  • 举报
回复
引用 6 楼 fangmingshijie 的回复:
<aop:aspectj-autoproxy proxy-target-class="false"></aop:aspectj-autoproxy> 改为这样看下,我猜报的应该是没有接口导致的错误,业务层没有定义接口,加上这个属性如果目标类没有声明接口,则spring将自动使用CGLib动态代理,有接口就用jdk的代理。
我测试了,貌似不行一样。
cui_Sunny 2013-03-28
  • 打赏
  • 举报
回复
引用 9 楼 is_zhoufeng 的回复:
引用 8 楼 suncui234 的回复:引用 7 楼 tianma630 的回复:@Autowired private User user; @Autowired private User regUser; 这个是从前台传的值吧 也注入是啥意思?如果不注入,那么前台如果没有传值,而在后面使用没有判断是否为空,直接使用不就报空指针了? 空指针不是通……
有啊,通过spring的注解配置,我配置的原型。
_jerrytiger 2013-03-28
  • 打赏
  • 举报
回复
引用 8 楼 suncui234 的回复:
引用 7 楼 tianma630 的回复:@Autowired private User user; @Autowired private User regUser; 这个是从前台传的值吧 也注入是啥意思?如果不注入,那么前台如果没有传值,而在后面使用没有判断是否为空,直接使用不就报空指针了?
空指针不是通过你这种方式来避免的。 你在使用时自己判断是否为空,如果为空就给用户提示。 不能够这样注入。 首先你有把User对象配置到Spring吗? 如果配置了。 是单例的还是原型的?
cui_Sunny 2013-03-28
  • 打赏
  • 举报
回复
引用 7 楼 tianma630 的回复:
@Autowired private User user; @Autowired private User regUser; 这个是从前台传的值吧 也注入是啥意思?
如果不注入,那么前台如果没有传值,而在后面使用没有判断是否为空,直接使用不就报空指针了?
tianma630 2013-03-28
  • 打赏
  • 举报
回复
@Autowired private User user; @Autowired private User regUser; 这个是从前台传的值吧 也注入是啥意思?
  • 打赏
  • 举报
回复
<aop:aspectj-autoproxy proxy-target-class="false"></aop:aspectj-autoproxy> 改为这样看下,我猜报的应该是没有接口导致的错误,业务层没有定义接口,加上这个属性如果目标类没有声明接口,则spring将自动使用CGLib动态代理,有接口就用jdk的代理。
cui_Sunny 2013-03-28
  • 打赏
  • 举报
回复
applicationContext.xml中配置内容:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="url" value="jdbc:oracle:thin:@localhost:1521:ORCL"></property>
<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"></property>
<property name="password" value="test"></property>
<property name="username" value="test"></property>
</bean>
<!-- 得到sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="mappingDirectoryLocations">
<list>
<value>classpath:com</value>
</list>
</property>
</bean>

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com"/>

<aop:config></aop:config>
<aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>
Action:

@Component
@Scope("prototype")
public class UserAction extends ActionSupport{

@Autowired
private User user;

@Autowired
private User regUser;

private String message;

@Resource
private UserService userService;

/**
* 登录
* @return
*/

public String loginAction()throws Exception{
System.out.println(userService+"=========="+user);
System.out.println("进入登录"+user.getName()+"===="+user.getPass());
user = userService.login(user);
if(user == null ){
message = "帐号或者密码错误";
return "ajax";
}
return "main";
}

@Test
public void testUS(){
System.out.println(userService+"====="+user);
}

public User getUser() {
return user;
}

public void setUser(User user) {
this.user = user;
}

public User getRegUser() {
return regUser;
}

public void setRegUser(User regUser) {
this.regUser = regUser;
}

public String getMessage() {
return message;
}

public void setMessage(String message) {
this.message = message;
}

public UserService getUserService() {
return userService;
}

public void setUserService(UserService userService) {
this.userService = userService;
}
UserService:

@Component
@Scope("prototype")
public class UserService {

@Autowired
private UserDao ud;

public User login(User user){
if(user != null && user.getName() != null && !"".equals(user.getName())
&& user.getPass() != null && !"".equals(user.getPass())){
user = ud.queryUser(user.getName(),user.getPass());
}
return user;
}

}
quinn_he 2013-03-28
  • 打赏
  • 举报
回复
无代码你说个XX。。
Bumpking 2013-03-28
  • 打赏
  • 举报
回复
mark 有嘛再来
onlyyou67 2013-03-28
  • 打赏
  • 举报
回复
把代码晒出来看看
  • 打赏
  • 举报
回复
无码无真相。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧