目录
问题一:@Data 注解不包含 @AllArgsConstructor 和 @NoArgsConstructor
问题三:@ConfigurationProperties的作用:
问题四:@Configuration和@ConfigurationProperties的区别?
问题五:@Repository和@Mapper的区别是什么?
问题九:@Resource在功能上可以等于@Autowired+@Qualifier
Maven构建生命周期(Lifecycle)的核心阶段:

1. clean
清理项目构建生成的临时文件(如 target 目录),确保后续构建从 “干净” 状态开始。
2. validate
验证项目结构是否正确,确保所有必要信息(如依赖、插件配置)完整可用。例如检查本地仓库中是否已下载所需依赖。
3. compile
编译项目的源代码(如将 .java 文件转换为 .class 文件),并将编译后的类文件存放到 target/classes 目录。
4. test
使用单元测试框架(如 JUnit)运行编译后的代码测试。测试无需依赖打包后的构件。
5. package
将编译后的代码和资源打包为可分发的格式(如 JAR、WAR 或 EAR 文件),输出到 target 目录。
6. verify
对集成测试的结果进行检查,确保项目符合质量标准(如代码风格检查、测试覆盖率验证)。
7. install
将打包好的构件(如 JAR)安装到本地 Maven 仓库(通常是用户目录下的 .m2/repository),供本地其他项目依赖。
8. site
生成项目的网站文档,包含依赖报告、测试覆盖率、项目信息等静态页面,输出到 target/site 目录。
9. deploy
将最终打包的构件复制到远程 Maven 仓库(如公司私服或 Maven Central),供其他开发者或项目共享。
这些阶段按顺序执行,例如运行 mvn deploy 会自动触发之前的所有阶段(validate → compile → test → package → verify → install → deploy)。
这些里面学习常用的是clean,package,工作会涉及install,deploy
一些注释的学习:
@Transactional 是 Spring 框架中的一个注解,用于声明式地管理事务。
当在方法或类上添加这个注解后,Spring 会在方法执行前开启事务,方法执行成功后提交事务;如果方法执行过程中出现异常,就会回滚事务,保证数据的一致性和完整性,常用于数据库操作等需要事务控制的场景
@PathVariable:当 URL 包含路径占位符(用 {} 定义,如 /users/{id} 中的 {id})时,@PathVariable 能将占位符对应的值(比如请求 /users/123 时的 123)提取出来,赋值给方法的参数,从而让方法基于路径中的变量进行业务逻辑处理
@GetMapping("/users/{userId}")
public User getUserId(@PathVariable("userId") Long id) {
// id 会被赋值为 URL 中 {userId} 对应的实际值(如 123)
return userService.findUserById(id);
}
@CookieValue:
当客户端请求携带 Cookie 时(如浏览器自动发送的会话标识、用户偏好设置等),@CookieValue 可以便捷地获取特定名称的 Cookie 值,无需手动解析整个 Cookie 列表,简化了参数获取逻辑
@GetMapping("/user")
public String getUserInfo(@CookieValue("sessionId") String sessionId) {
// sessionId 会被赋值为 Cookie 中 "sessionId" 对应的值(如 "abc123")
return "当前会话ID:" + sessionId;
}
@SessionAttribute:
- 获取会话属性:
@SessionAttribute用于从 HTTP 会话(Session)中获取指定名称的属性值,并将其绑定到控制器方法的参数上。这样在处理请求时,就可以直接使用会话中已存在的属性值,而不需要手动从HttpSession对象中获取 。 - 确保属性存在:默认情况下,如果指定名称的会话属性不存在,使用
@SessionAttribute注解的方法会抛出HttpSessionRequiredException异常,这可以保证方法执行时依赖的会话属性已经存在。
@Controller
public class DashboardController {
@GetMapping("/dashboard")
public String dashboard(@SessionAttribute("user") UserInfo userInfo, Model model) {
model.addAttribute("username",

最低0.47元/天 解锁文章
3223

被折叠的 条评论
为什么被折叠?



