1. El problema de ejecución del proyecto clonado
1.1.problema del complemento de dependencia de maven
1.2. Prompt No se puede iniciar el compilador
Razón: falta el directorio
2. Problemas de inicio y funcionamiento del proyecto Spring Boot
2. Error de compilación de código (compilación durante la inyección de dependencia)
2.2. Clase de inicio no encontrada
2.3. Múltiples problemas de inicio
2.4. Excepción de puntero nulo en tiempo de ejecución
2.5. No se puede encontrar el objeto Bean correspondiente
2.6. Excepción de inyección de dependencia
2.7. Definición del método de prueba de prueba unitaria
2.8. La definición de Bean no único es anormal
3. Problema de conexión a la base de datos en el proyecto SpringBoot
3.1. La URL no está configurada o configurada incorrectamente
3.2. Comunicación anormal al establecer una conexión URL
3.3. Rechazado al acceder a la base de datos
4. Problema de integración de MyBatis en el proyecto SpringBoot
4.1. Mapeo SQL no encontrado
4.2. El atributo descrito por Autowired tiene un mensaje de error
4.3. BindingException BindingException
5. Problema de solicitud web en el proyecto SpringBoot
5.1. El servicio no se inició correctamente o el puerto de acceso es incorrecto
5.2. Análisis del problema del puerto ocupado cuando se inicia el servicio
5.3. Solicitar análisis de problemas y soluciones 404
5.4. La plantilla Thymeleaf no existe excepción
5.5. Análisis anormal de conversión de datos JSON
5.6.400 análisis de excepción de solicitud
5.7.405 Solicitar análisis de excepción
6. Excepciones en Ajax
6.1 Excepción de actualización simultánea
6.2 No hay respuesta después de que se desencadena el evento
6.3 Problema de acceso a la propiedad del objeto
6.4 Problemas de acceso entre dominios
6.5 La función de acceso no existe
6.6 Problema de comprensión de la función de devolución de llamada
6.7 Problema de excepción de solicitud 415
6.8 No hay problema con los iconos pequeños
7. Error en JS / JQuery / Ajax
7.1 No se puede recibir el valor de retorno de ajax
//页面加载完成异步加载当前页数据
function doGetObjects() {
var id = getCurrentUserData();
console.log("当前用户id=" + id);
let url = `user/doFindUserInfo/${
id}`;
$.ajax({
url,
success(result) {
doHandleResponseResult(result);
}
});
}
function getCurrentUserData() {
var id ;
$.ajax({
url: "user/doFindCurrentUserId",
async: false,
success: function (result) {
id = result;
}
})
return id;
}
8. Problemas en shiro
8.1 SecurityUtils.getSubject (). GetPrincipal () 为 null
Solución: Solo SecurityUtils.getSubject (). GetPrincipal () obtenido bajo la clase User y UserController / UserService es el objeto de usuario. En otros métodos, el valor no está disponible (valor nulo), por lo que uno nuevo en SysUserServiceImpl HashMap encapsula y devuelve información del objeto y luego llama a este método desde otras ubicaciones.
@Override
public HashMap<String, Object> getCurrentUserData() {
SysUser user = (SysUser) SecurityUtils.getSubject().getPrincipal();
HashMap<String, Object> map = new HashMap<>();
map.put("id", user.getId());
map.put("username", user.getUsername());
map.put("password", user.getPassword());
map.put("salt", user.getSalt());
map.put("sex", user.getSex());
map.put("email", user.getEmail());
map.put("mobile", user.getMobile());
map.put("valid", user.getValid());
map.put("createdTime", user.getCreatedTime());
map.put("modifieTime", user.getModifiedTime());
map.put("createdUser", user.getCreatedUser());
map.put("birthday", user.getBirthday());
return map;
}
Luego, la otra capa de servicio puede llamar a este método para realizar el negocio.
@Override
public int reserveSeat(SysSeat entity) {
HashMap<String, Object> userMap = sysUserService.getCurrentUserData();
entity.setUsedUser((String) userMap.get("username"));
entity.setState(2);
return sysSeatDao.reserveSeat(entity);
}
Hora de aparición: 2021/2/9 11:50 Después de que el asiento se haya reservado con éxito en el sistema de administración de asientos de la biblioteca, el nombre de usuario del usuario reservado se muestra como la lista