# 软件开发与管理 - springboot **Repository Path**: chinarzj/web-framework-springboot ## Basic Information - **Project Name**: 软件开发与管理 - springboot - **Description**: 本仓库用于软件开发与管理课程,项目采用springboot技术 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 123 - **Created**: 2021-05-23 - **Last Updated**: 2021-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 软件开发与管理 - springboot #### 介绍 本仓库用于软件开发与管理课程,项目采用springboot技术 #### 软件架构 软件架构说明 #### 登录注册 1. 现在实现了使用get方式的登录注册,这样会将密码泄露 2. 下次的改进:使用post方式实现登录注册;添加过滤器以及拦截器;实现AOP和事务。 3. 实现AOP的想法:AOP是面向切面编程,那如果想要把用户的登录和注册操作写入数据库,那就可以定义一个切面类,用来在用户执行登录注册操作的时候写入数据库。 通过做AOP作业掌握的知识: 3.1 断点的颜色变灰是因为你禁用了!(在控制台左下角) 3.2 @GetMapping是一个组合注解 是@RequestMapping(method = RequestMethod.GET)的缩写。同理,@PostMapping也是。 3.3 断点可以退回上一步,且鼠标在断点调试处的按钮时,在IDEA最下面有这个操作的解释 3.4 https://www.jianshu.com/p/d69caf2f2ab2 是springboot注解集总 3.5 @AliasFor用于为注解属性声明别名,有4种使用方式。其中“显示的为元注解中的属性起别名”是实现“@SpringBootApplication可以使用别的注解(@EnableAutoConfiguration,@EnableAutoConfiguration,@ComponentScan)的属性”的方法。参考资料:https://www.cnblogs.com/yangfeiORfeiyang/p/9464914.html;https://blog.csdn.net/wolfcode_cn/article/details/80654730 4. 缓存作业中遇到的问题以及学到的知识: 4.1 springboot启动后访问404,检查配置文件是否有server.context-path=/hello 配置,如果有则访问地址需要ip:port/hello的方式访问。参考资料:https://blog.csdn.net/wgh_930708/article/details/90373087 4.2 报错:java.sql.SQLNonTransientConnectionException: Public Key Retrieval is not allowed 解决方法:url的后边加上allowPublicKeyRetrieval=true即可。参考资料:https://blog.csdn.net/weixin_44415928/article/details/104095942 4.3 报错:java.net.ConnectException: Connection refused: no further information 解决方法:redis需要下载且在服务器打开的时候才能用redis,且运行时需要打开redis。PS:我在期间还参考https://blog.csdn.net/weixin_42825721/article/details/90680065这个进行了配置的更改 4.4 Redis是一个键值对(Key-Value)存储数据库,是跨平台的非关系型数据库。Redis通常被称为数据结构服务器,因为值(value)可以是字符串(String)、哈希(Hash)、列表(list)、集合(sets)和有序集合(sorted sets)等类型。 4.5 druid是连接池之一。连接池的作用是资源重用。 5. 任务调度作业思路:5.1 先在日志表中添加用户的信息,(我这里有失误,存的是密码的信息。因为数据库中的用户和密码都一样,所以在这里不影响。); 5.2 然后统计登录人数。在切面中使用SQL语句; 5.3 用任务调度完成定时任务;使用Quartz表达式设定定时任务,表达式生成网址https://www.bejson.com/othertools/cron/ 使用@Scheduled注解的方法不能有参数! 5.4 将统计的登录人数写入数据库中。(未完成) 6. 验证发生异常时的事务回滚:只需要在逻辑代码的方法上加@Transactional的注解,注意方法名的访问修饰符必须是public。