springboot注入bean的问题

yannsPeng 2017-12-12 03:58:17
@ServerEndpoint(value = "/websocket")
@Component
public class WebSocket
{
@Autowired
private IntegralDao integralDao;

@OnOpen
public void onOpen(){
System.out.println("连接已完成");
}

@OnMessage
public void say(String message, Session session){
try {
Integral integral = integralDao.findIntegralByUserName(message);
session.getBasicRemote().sendText(String.valueOf(integral.getState()));
} catch (IOException e) {
e.printStackTrace();
}
}


...全文
506 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
解决了,手动注入。
/**
     * 根据bean的class来查找对象
     * @param c
     * @return
     */
    public static Object getBeanByClass(Class c){
        return applicationContext.getBean(c);
    }
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
引用 6 楼 zhang_kang_user 的回复:
你可以看看这个,http://blog.csdn.net/heyiamcoming/article/details/78770166
或者这个https://www.cnblogs.com/shihaiming/p/7988625.html
很长时间不用springboot了,不都是自己配置springMVC的么,,


我的工具类自动注入也可以自动注入到Controller类里面使用的。

和文章的好像反过来了。我现在想在webSocket类里面注入service和dao。
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
引用 7 楼 soton_dolphin 的回复:
bean的配置文件呢?


入口没加包扫描,默认扫描application及以下包。

包扫描应该没问题,我现在换成了service。
@Component
@ServerEndpoint(value = "/websocket")
public class WebSocket
{
@Resource
private IntegralService integralService;

@OnOpen
public void onOpen(){
System.out.println("连接已完成");
}

@OnMessage
public void say(String message, Session session){
try {
Integral integral = integralService.findIntegralByUserName(message);
session.getBasicRemote().sendText(String.valueOf(integral.getState()));
} catch (IOException e) {
e.printStackTrace();
}
}

service肯定交给了spring,在controller里面也能自动注入进去,但是在config文件里面注入为空,是不是要加什么配置。
soton_dolphin 2017-12-12
  • 打赏
  • 举报
回复
bean的配置文件呢?
zk_Kang 2017-12-12
  • 打赏
  • 举报
回复
你可以看看这个,http://blog.csdn.net/heyiamcoming/article/details/78770166 或者这个https://www.cnblogs.com/shihaiming/p/7988625.html 很长时间不用springboot了,不都是自己配置springMVC的么,,
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
引用 3 楼 zhang_kang_user 的回复:
你自己都说了啊,注入dao为空啊,最大可能就是框架哪里有配置有问题啊。。找找配置注入的地方。。
/**
 * 积分dao
 * @author pengy
 */
public interface IntegralDao extends JpaRepository<Integral, Long>
{
    
    /**
     * 根据用户名查询出用户积分
     * @param userName 用户名
     * @return
     */
    Integral findIntegralByUserName(@Param("userName") String userName);
    
    /**
     *  每天0点定时更新今日已签到为签到
     */
    @Modifying(clearAutomatically = true)
    @Transactional
    @Query(nativeQuery = true,value = "UPDATE INTEGRAL SET STATE = 0 WHERE STATE = 1")
    void updateState();
    
}
上面是我的完整的DAO类,用的springboot+JPA,其他contriller自动注入DAO是没有问题的。
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
引用 3 楼 zhang_kang_user 的回复:
你自己都说了啊,注入dao为空啊,最大可能就是框架哪里有配置有问题啊。。找找配置注入的地方。。
有没有可能出现的情况列举一下,刚接触springboot,配置还不是很熟。
zk_Kang 2017-12-12
  • 打赏
  • 举报
回复
你自己都说了啊,注入dao为空啊,最大可能就是框架哪里有配置有问题啊。。找找配置注入的地方。。
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
有没有大佬。
yannsPeng 2017-12-12
  • 打赏
  • 举报
回复
注入的DAO,报了空指针,问一下什么解决方法。

81,090

社区成员

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

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