@Service("AdminService") public class AdminServiceImpl implements AdminService { @Autowired private AdminDao adminDao; @Autowired private DocDao docDao; @Autowired private LogDao logDao; @Autowired private UserDao userDao; @Autowired private RoleDao roleDao; @Override public Admin login(String username, String password) { try { return adminDao.login(username, md5(password)); }catch (Exception e) { e.printStackTrace(); return null; } } @Override public Map<String, Integer> index() { Map<String,Integer> map = new HashMap<>(); Long templateNum = docDao.count(null); map.put("templateNum",templateNum.intValue()); List<Log> logs = logDao.selectAll(); int nowlogNum = 0; Date now = new Date(); for (Log log : logs) { Date date = log.getTime(); if(DateUtils.isSameDay(now, date)){ nowlogNum++; } } map.put("nowlogNum",nowlogNum); Long logNum= logDao.count(); map.put("logNum",logNum.intValue()); Long userNum = userDao.count(null); map.put("userNum",userNum.intValue()); Long roleNum = roleDao.count(); map.put("roleNum",roleNum.intValue()); return map; } public static String md5(String password) throws NoSuchAlgorithmException { MessageDigest md = MessageDigest.getInstance("MD5"); byte[] hash = md.digest(password.getBytes(StandardCharsets.UTF_8)); StringBuilder hexString = new StringBuilder(); for (byte b : hash) { String hex = Integer.toHexString(0xff & b); if (hex.length() == 1) hexString.append('0'); hexString.append(hex); } return hexString.toString(); } }
时间: 2023-06-27 18:04:04 浏览: 81
这是一个使用 Spring 框架编写的 Java 类,实现了 AdminService 接口。它包含了五个自动装配的 DAO 对象:AdminDao,DocDao,LogDao,UserDao 和 RoleDao。其中的 login 方法接受用户名和密码作为参数,使用 MD5 算法对密码进行加密,并调用 AdminDao 的 login 方法进行登录验证。index 方法返回一个包含了系统中文档、日志、用户和角色数量的 Map 对象。md5 方法用于对密码进行 MD5 加密处理。
相关问题
@service public class UserServicelmpl implements UserService{ @Autowired private UserRepository userRepository; @Override public User findById(Integer id){ return userRepository.fingById(id); } }
在这段代码中,您需要确保您的类上方已经正确地导入了@Service注解,以便您可以使用它。如果您的代码中已经导入了这个注解并且仍然收到“Cannot resolve symbol 'service'”错误,则可能是因为您的项目缺少相应的依赖项。请检查您的项目的依赖项,并确保您已经正确地添加了Spring框架的依赖项。如果您仍然无法解决问题,请提供更多上下文和代码示例,以便我可以更好地帮助您。
@Slf4j @Component public class FMSGCallBack implements HCNetSDK.FMSGCallBack_V31 { @Autowired private RedisService redisService; redisService 报空指针异常
这个问题可能是因为你没有将 RedisService 注入到 FMSGCallBack 类中。你可以检查一下 FMSGCallBack 类是否被正确地注入到 Spring 容器中,并且 RedisService 是否被正确地注入到 FMSGCallBack 类中。
另外,如果你要在非 Spring 管理的类中使用 Spring 管理的 Bean,你可以通过 ApplicationContext 的 getBean 方法获取 Bean 对象,而不是使用 @Autowired 注解注入。可以尝试一下这个方法:
```
@Slf4j
@Component
public class FMSGCallBack implements HCNetSDK.FMSGCallBack_V31 {
private RedisService redisService;
@Override
public void invoke(NativeLong lCommand, HCNetSDK.NET_DVR_ALARMER pAlarmer, Pointer pAlarmInfo, int dwBufLen, Pointer pUser) {
// 通过 ApplicationContext 获取 RedisService Bean
ApplicationContext context = SpringContextUtil.getApplicationContext();
redisService = context.getBean(RedisService.class);
// 使用 redisService 对象进行操作
redisService.xxx();
}
}
```
这里通过 SpringContextUtil 工具类获取了 ApplicationContext,然后通过 ApplicationContext 获取了 RedisService Bean 对象,最终使用这个对象进行操作。注意,这里需要将 RedisService 类型传入 getBean 方法中。
阅读全文