复习JavaEE笔记

一、常用dependency

1.热部署:

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-devtools</artifactId>
            <optional>true</optional>
        </dependency>

2.Maven

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

3.Themleaf

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-thymeleaf</artifactId>
        </dependency>

4.Web

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

5.Lombok

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>

6.单元测试

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>

7.JDBC驱动

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>

8.校验器

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

9.Hutool(不常用)

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.4.5</version>
        </dependency>

二、常用注解及其含义和用法

1.@Data

(1)作用

导入getter()方法和setter()方法

2.@AllArgsConstructor

(1)作用

导入全参构造方法

3.@NoArgsConstructor

(1)作用

导入无参构造方法

4.@Resource

(1)作用

@Resource和@Autowired注解都是用来实现依赖注入的。只是@AutoWried按by type自动注入,而@Resource默认按byName自动注入。

(2)属性

@Resource有两个重要属性,分别是name和type。spring将name属性解析为bean的名字,而type属性则被解析为bean的类型。所以如果使用name属性,则使用byName的自动注入策略,如果使用type属性则使用byType的自动注入策略。如果都没有指定,则通过反射机制使用byName自动注入策略。

5.@ResponseBody

(1)作用

@ResponseBody的作用是将java对象转为json格式的数据。后台给前台传一个对象的话,没有@ResponseBody,接受的则是一个Object对象。

6.@ModelAttribute

(1)作用

被@ModelAttribute注释的方法会在此controller每个方法执行前被执行,因此对于一个controller映射多个URL的用法来说,要谨慎使用。

7.@SpringBootApplication

(1)作用

启动项注解

8.@Configuration

(1)作用

@Configuration用于定义配置类,可替换xml配置文件,被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被AnnotationConfigApplicationContext或AnnotationConfigWebApplicationContext类进行扫描,并用于构建bean定义,初始化Spring容器。

9.@GetMapping

(1)作用

@GetMapping是Spring4.3提供的新注解,它是一个组合注解,等价于@RequestMapping(method = RequestMethod.Get ),用于简化开发。

10.@Mapper

(1)作用

用于Mapper层。目的就是为了不再写mapper映射文件。(很香的一个标签)。

11.@Service

(1)作用

标记当前类是一个service类,加上该注解会将当前类自动注入到spring容器中,不需要再在applicationContext.xml文件定义bean了。

12.@Controller

(1)作用

控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示。

@Repository

(1)作用

作用于Dao层的实现类(Impl),将Dao层自动装配到IOC容器中。

三、IOC与AOP(这一块总结的可能不是很好,有高人看不过去的话,希望并感谢指导)

1.IOC

(1)IOC的含义

IOC: Inverse of Control,控制反转,将对象的创建权反转给Spring。Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理。

(2)IOC的注入方法
a.接口注入
b.setter方法注入

配置bean.xml文件进行装配。

<bean name="stu" class="com.cnblogs.bean.Student">
        <property name="sNo" value="1001"></property>
        <property name="name" value="jack"></property>
        <property name="age" value="12"></property>
        <property name="sex" value="male"></property>
        <property name="grade" value="三年级"></property>
</bean>

< bean >标签中,name和id起标识这个对象的作用,id会帮我们检查给对象起的名字是否规范(名字不能重复,不能有空格,不能以数字开头)。
class属性是一个类的全限定名,标识配置那个类。

c.构造方法注入
d.注解注入

@Service:在xxxServiceImpl中添加(Service层的实现类)
@Repository:在xxxDaoImpl中添加(Dao层的实现类)
@Mapper:在xxxMapper中添加(Mapper层的实现类)
@Controller:在xxxController中添加(Controller层)
@AutoWired:自动按照类型注入

2.AOP

(1)AOP的原理

AOP(Aspect-OrientedProgramming,面向方面编程)。

(2)AOP的应用

在这里插入图片描述
参考博客:某位大佬

四、MVC

1.MVC的工作原理

M:Model(完成业务逻辑 Service层、Mapper层(dao层)、pojo层(entity层))
V:View(完成视图渲染)
C:Controller(控制器,连接前后端)
在这里插入图片描述
应用程序的入口类应放在上述包之上的包中,主类使用注解@SpringBootApplication

2.使用Controller

(1)主要注解的使用

@Controller 作用于Controller类。表明Controller类可以识别Http请求。
@RequestMapping 作用于类或方法。用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。用于方法上,表示方法中所有的响应请求的方法都是以该地址作为路径。

(2)处理URL请求方法的入口参数 Model

在这里插入图片描述

(3)处理URL请求方法的返回类型

在这里插入图片描述

1.返回类型是String,默认表示视图名称。如果要返回内容,则在该URL请求处理方法上使用注解@ResponseBody说明。

3.@RequestMapping

作用:在URL和代码之间建立映射关系
属性:
value :表示URL(指定请求的实际地址)
method:表示请求的方法 GET、POST
Consumes, 表示方法仅处理request Content-Type为"application/json" 类型的请求,例如application/josn,text/html)
Produces :指定返回的内容类型,对应HTTP协议的Accept(仅当request请求头中的(Accept)类型中包含该指定类型才返回)
params :必须包含某些参数值时,才让该方法处理
headers :指定request中必须包含某些指定的header值,才能让该方法处理请求。

4.方法参数

(1)@PathVariable

从URL中提取参数。在使用的同时,URL中要添加/{参数名称}
在这里插入图片描述

(2)MultipartFile文件上传

@ModelAttribute 把使用该注解的变量作为Model的一个属性,作用于Controll的方法上,在URL被映射到该类时该方法首先被执行。
在这里插入图片描述

  1. getOriginalFilename: 上传的文件名
  2. getBytes 上传的内容
  3. isEmpty 文件上传内容为空或没有上传
  4. getSize 文件大小
  5. transferTo(File dest) 保存文件到指定路径
    在使用文件上传时,前端form表单需要添加enctype属性。enctype="multipart/form-data"
    在这里插入图片描述
(3)Model
  1. addAttribute(String attrName, Object attrValue)向前端传递数据。
  2. addAllAttributes(Map attrs) 覆盖
  3. mergeAttributes(Map attrs) 合并,如果有则忽略
  4. containsAttribute(String attrName)判断变量是否存在
    在这里插入图片描述
(4)ModelAndView

与Model相比,多提供了视图信息
在这里插入图片描述

(5)@RequestParam注解限定HTTP参数
  1. value:参数名称
  2. required:boolean类型,是否必须有。若没有抛400 错误
  3. defaultValue: 若没有时的默认值
    在这里插入图片描述

5.数据校验

(1)空检查
  1. @Null 验证对象是否为空
  2. @NotNull 验证对象不为空
  3. @NotBlank 验证字符串不为空和不是空字符串
  4. @NotEmpty 验证对象不为null, 或者集合不为空
(2)长度检查
  1. @Size(min=,max=)
  2. @Length 字符串长度
(3)数值检查
  1. @Min 验证是否大于等于某个数
  2. @Max 验证是否小于等于某个数
  3. @Digits 数字格式验证
  4. @Range 数字范围验证
(4)其它检查
  1. @Email 邮件格式验证
  2. @Pattern 正则表达式验证
(5)示例

在这里插入图片描述
在这里插入图片描述
@Validated 触发校验,校验上下文为User user

(6)注意事项

验证注解必须提供:

  1. message: 验证失败返回的消息
  2. groups: 验证规则分组
  3. payload: 验证的有效负荷

6.WebMvcConfigurer

(1)作用

全局定制化SpringBoot的MVC特性。

(2)拦截器

详见我的第一条博客

(3)跨域访问(这条及以下因为没怎么用过,所以献丑不如藏拙了,之后再补)

借助addCorsMappings增加拦截器

(4)格式化

HTTP请求映射到Controller方法时,Spring会自动进行类型转换。借助addFormatters增加格式转换

(5)注册Controller

借助addViewControllers增加控制器

7.Service和Transactional

(1)Service

业务逻辑类,被Controller调用

  1. 提供业务接口
  2. 提供业务接口实现类
  3. 在实现类中增加@Service注解
    在这里插入图片描述
(2)Transactional

事务管理

  1. 增加依赖
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
  1. 作用于类上
    调用任何方法都会开启一个事务,失败会回滚。
  2. 作用于方法上
    调用指定方法都会开启一个事务,失败会回滚
  3. 事务中开启新事务
@Transactional(propagation=Propagation.REQUIRES_NEW)

五、mybatis

1. 导入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
2. 数据库配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&useSSL=true&zeroDateTimeBehavior=convertToNull&serverTimezone=Asia/Shanghai
spring.datasource.username=SQL账号
spring.datasource.password=SQL密码
3. Mapper.xml

需要导入头文件:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.mybatis.example.BlogMapper">
  <select id="selectBlog" resultType="Blog">
    select * from Blog where id = #{id}
  </select>
</mapper>

来源:Mybaits官网

4.CRUD等其它详情

详见我的第二条博客

六、前端

1.基本控件

可以去Bookstrap官网,资料全面。或者这里

2.form表单

< form > 标签用于为用户输入创建 HTML 表单。

表单能够包含 input 元素,比如文本字段、复选框、单选框、提交按钮等等。

表单还可以包含 menus、textarea、fieldset、legend 和 label 元素。

表单用于向服务器传输数据。

(1)属性

1. action:需要表单中有一个< input >标签用于指向跳转的url

(2)示例

在这里插入图片描述
单独补充一下此处input标签当中的formaction属性:

  1. formaction 属性覆盖 form 元素的 action 属性。
  2. 该属性适用于 type=“submit” 以及 type=“image”
  3. 属性值为url。

学术不精,欢迎各位大佬的吐槽。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值