springboot注解解释

层级理解

yaml://或者使用properties

 

application.yml中配置了与数据库的连接字符串,数据库的密码,系统日志保存的位置,文件上传目录,以及后端服务所运行的端口号。

entity:实体层,数据库在项目中的类

实体层。这里写的是实体类的定义,数据表中的每个字段名都作为实体类中的一个成员变量,然后这里再实现每个成员变量的get和set的方法。

controller:控制层,控制业务

控制层。控制层中定义了提供给前端的接口的路径,前端使用本接口的方法(GET还是POST),以及需要传输的参数。前端发送来的请求首先传到“控制器”中,这里接受前端传来的请求,并将这个请求传到service层(调用了service层的接口)。

service:业务层,控制业务逻辑

服务层。该层定义了相关服务的接口,只是接口,实现接口的代码放在impl文件夹中。接受从控制层controller中传递过来的请求,然后将请求传递给DAO层。

作用:实现功能的设计。

impl:在service层之下

 服务层service接口的实现。在这里调用了DAO接口,将需要操作数据库的请求传递给DAO层。

作用:impl类实现service的接口。

dao

数据库对后端服务的接口层。接受来自服务层service的请求,将请求传递给mapper。

作用:访问数据库,向数据库发送sql语句,完成数据的增删改查功能。

mapper

 数据库操作层,这里写SQL语句,实现dao接口,接受dao接口传入的参数并执行SQL语句操作数据库。

VO

View Object,视图层,其作用是将指定页面的**展示数据**封装起来,通常用于业务层之间的数据传递。

注解理解

entity层: @Entity//对应数据库中的信息 @Table(name="")实体类和表名相同可以省略

@DynamicUpdate//我更改了哪些字段,只要更新我修改的字段就够了

@DynamicInsert//数据库插入日期或时间戳字段时,在对象字段为空的情况下,表字段能自动填写当前的sysdate。

实体类 private封装 @Data(lombok) 定义有参/无参构造方法,提供getter/setter方法

@Id//主键
@GeneratedValue(strategy = GenerationType.IDENTITY)//自增
@Column(声明的列名和数据库中的字段名不一致,@Column("..."))
//对应数据库中的信息
导入lombok配置

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

Dao层: 持久层,与数据库交互

创建dao接口,在配置文件中定义该接口的实现接口;

@Mapper和@Repository都是作用在dao层接口,使得其生成代理对象bean,交给spring 容器管理 对于mybatis来说,都可以不用写mapper.xml文件

@Mapper不需要配置扫描地址,可以单独使用,如果有多个mapper文件的话,可以在项目启动类中加入@MapperScan(“mapper文件所在包”)@Repository不可以单独使用,否则会报错误,要想用,必须配置扫描地址(@MapperScannerConfigurer)

@Mapper:使用@Mapper将NewsDAO接口交给Spring进行管理,不用写Mapper映射文件(XML),

为这个NewsDAO接口生成一个实现类,让别的类进行引用

@Repository:使用@Repository注解可以确保DAO或者repositories提供异常转译,这个注解修饰的DAO或者repositories类会被ComponetScan发现并配置,同时也不需要为它们提供XML配置项。

public interface Product extends JpaRepository<entity实体, 主键的类型>
//JpaRepository  它包含用于基本 CRUD 操作的 API,以及用于分页和排序的 API。

//配置JpaRepository的maven构建文件
<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

@Param注解:@Param 中定义的变量名必须和 mapper 中保持一致才可以

service层&&impl层:业务层

@Service 声明一个service(也可以使用impl+service实现,@serivce声明在impl类的顶部)

@Autowired 将DAO注入进来

Controller层:

@Transactional(rollbackFor=Exception.class):如果类加了这个注解,那么这个类里面的方法抛出异常,就会回滚,数据库里面的数据也会回滚。在@Transactional注解中如果不配置rollbackFor属性,那么事物只会在遇到RuntimeException的时候才会回滚,加上rollbackFor=Exception.class,可以让事物在遇到非运行时异常时也回滚。

@CrossOrigin:能一定程度上的简化解决跨域问题的方式。

@RestController = @Controller + @ResponseBody

@Controller 将当前修饰的类注入SpringBoot IOC容器,使得从该类所在的项目跑起来的过程中,这个类就被实 例化。当然也有语义化的作用,即代表该类是充当Controller的作用

@ResponseBody 它的作用简短截说就是指该类中所有的API接口返回的数据,甭管你对应的方法返回Map或是其 他Object,它会以Json字符串的形式返回给客户端。

@RequestMapping("/path1") 表示该控制器处理所有“/path”的URL请求。RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。

@RequestParam:用于将请求参数区数据映射到功能处理方法的参数上。

@Autowired:将service接口注入到Controller层

@GetMapping("/path2")或者(path = "/path2") 访问这个注解下的路径/path1/path2

@PostMapping

get和post的区别:GET用来获取资源,它只是获取、查询数据,不会修改服务器的数据,

POST则是可以向服务器发送修改请求,进行数据的修改的。

//如果在yml配置下,那么就存在于@GetMapping之上的层级

server:
  servlet:
    context-path: /sell

@RequestParam:将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)

语法:@RequestParam(value=”参数名”,required=”true/false”,defaultValue=””)
 
value:参数名
 
required:是否包含该参数,默认为true,表示该请求路径中必须包含该参数,如果不包含就报错。
 
defaultValue:默认参数值,如果设置了该值,required=true将失效,自动为false,如果没有传该参数,就使用默认值

VO层:将前端页面传输的数据在后端service层封装成一个VO类,控制层需要调用时,直接调用该类中的属性,以获取各种数据

@JsonProperty("name") 在前端显示name

Config层:

@Configration 注解:声明当前类是一个配置类,相当于 Spring中的一个 XML 文件

@Bean 注解:作用在方法上,声明当前方法的返回值是一个Bean。(注解一个Bean,交给spring处理)

Form层:(表单)

相当于前端给后端的对象传输数据,封装成一个对象表单,在每一个属性上可以标注要求并且使用注解来哦实现:

@Length(min=... | max=... | message=...)

@NotNull(message = "请输入年龄")

(在controller层中)@Valid 注解通常用于对象属性字段的规则检测,表示我们对这个对象属性需要进行验证.

既然验证,那么就肯定会有验证结果,所以我们需要用一个东西来存放验证结果,做法也很简单,在参数直接添加一个BindingResult

 

通过bindingResult.hasErrors()验证表单是否发生错误来抛出异常

  • @Component注解表明一个类会作为组件类,并告知Spring要为这个类创建bean。

  • @Bean注解告诉Spring这个方法将会返回一个对象,这个对象要注册为Spring应用上下文中的bean。通常方法体中包含了最终产生bean实例的逻辑。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是Spring Boot常用的注解解释: 1. @SpringBootApplication:这个注解是一个组合注解,包含了@Configuration、@EnableAutoConfiguration和@ComponentScan。它用于标识一个主启动类,表示这是一个Spring Boot应用程序的入口。 2. @RestController:这个注解用于标识一个类是RESTful风格的控制器,它会自动将返回的对象转换为JSON格式的响应。 3. @RequestMapping:这个注解用于映射HTTP请求到控制器的处理方法上。可以用于类级别和方法级别,用于指定URL路径和HTTP请求方法。 4. @GetMapping、@PostMapping、@PutMapping、@DeleteMapping:这些注解分别用于映射HTTP的GET、POST、PUT和DELETE请求到控制器的处理方法上。 5. @PathVariable:这个注解用于获取URL路径中的参数值,并将其绑定到方法的参数上。 6. @RequestParam:这个注解用于获取请求参数的值,并将其绑定到方法的参数上。 7. @RequestBody:这个注解用于获取请求体的内容,并将其转换为方法参数的类型。 8. @ResponseBody:这个注解用于将方法的返回值转换为HTTP响应的内容。 9. @Autowired:这个注解用于自动装配依赖对象,可以用于字段、构造方法和方法上。 10. @Component:这个注解用于标识一个类是Spring的组件,会被自动扫描并注册到Spring容器中。 11. @Service:这个注解用于标识一个类是业务逻辑层的组件。 12. @Repository:这个注解用于标识一个类是数据访问层的组件。 13. @Configuration:这个注解用于标识一个类是配置类,其中定义了一些Bean的创建和配置。 14. @EnableAutoConfiguration:这个注解用于启用Spring Boot的自动配置机制。 15. @Conditional:这个注解用于根据条件来决定是否创建某个Bean。 16. @Value:这个注解用于从配置文件中读取属性值,并将其注入到方法参数或字段中。 17. @Async:这个注解用于标识一个方法是异步执行的。 18. @EnableScheduling:这个注解用于启用Spring的定时任务调度功能。 19. @EnableCaching:这个注解用于启用Spring的缓存功能。 20. @EnableSwagger2:这个注解用于启用Swagger2的API文档生成功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值