81,090
社区成员
发帖
与我相关
我的任务
分享
@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();
}
}
/**
* 根据bean的class来查找对象
* @param c
* @return
*/
public static Object getBeanByClass(Class c){
return applicationContext.getBean(c);
}
@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();
}
}
/**
* 积分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是没有问题的。