JavaWeb的重点知识(生命周期,)

目录

Maven构建生命周期(Lifecycle)的核心阶段:

一些注释的学习:

在学习JavaEE时遇到的问题:

问题一:@Data 注解不包含 @AllArgsConstructor 和 @NoArgsConstructor

问题二:端口被占用如何操作?

问题三:@ConfigurationProperties的作用:

问题四:@Configuration和@ConfigurationProperties的区别?

问题五:@Repository和@Mapper的区别是什么?

问题六:IOC和AOP是spring的两大核心思想

问题七:IOC的实现方式:

问题八:三种模式:门面模式,适配器模式,代理模式

问题九:@Resource在功能上可以等于@Autowired+@Qualifier

运行结果的分析

SQL注入问题:

1. SQL 注入的原理

2. MyBatis 中 $ 的问题

事务传播机制:

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",
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值