Java项目(一些注解、依赖

文章目录

  • 常用的几个注解
    • @Data
    • @AllArgsConstructor
    • @NoArgsConstructor
    • @Setter
    • @Getter
    • @EqualsAndHashCode
    • @Log4j/@Slf4j
  • MYBatis-Plus常用注解
    • @TableName
    • @TableId
    • @TableField
    • @TableLogic
  • 后端代码中常用注解
    • @Mapper
    • @MapperScan
    • @Controller(@RequestMapping)
    • @Autowired
    • @ResponseBody
  • `pom.xml`中加入依赖
  • IService接口
    • IService的使用
  • Cookie

创建项目

常用的几个注解

@Data

注在类上,提供类的get、set、equals、hashCode、canEqual、toString方法

@AllArgsConstructor

注在类上,提供类的全参构造

@NoArgsConstructor

注在类上,提供类的无参构造

@Setter

注在属性上,提供 set 方法

@Getter

注在属性上,提供 get 方法

@EqualsAndHashCode

注在类上,提供对应的 equals 和 hashCode 方法

@Log4j/@Slf4j

注在类上,提供对应的 Logger 对象,变量名为 log

MYBatis-Plus常用注解

参考

@TableName

value作用:value指定数据库中的表名

如果我们不设置这个注解,我们操作的数据库的表就由BaseMapper 泛型决定(Book)

@TableName(value = "t_book") //@TableName("t_book")
public class Book {}

另外的一种方法:

设置实体类所对应的表的统一前缀

我们如果不用注解也可以,比如下面的这个方式,给每个类都配置一个前缀,比如说表名是Book,但他其实已经默认是t_Book
Java项目(一些注解、依赖_第1张图片

@TableId

@TableField

作用:指定属性所对应的字段名

 
    @TableField(value = "bookName")
    private String bookName;
 
    @TableField(value="type")
    private  String type;

如果不加上面那个注解的话,就会默认两个单词中间加一个—,如下图所示
Java项目(一些注解、依赖_第2张图片

@TableLogic

后端代码中常用注解

参考

@Mapper

使用:在接口类上添加了@Mapper,在编译之后会生成相应的接口实现类。
添加位置:接口类上面,代码如下所示:

@Mapper
public interface StudentMapper {
}

@MapperScan

作用:指定要变成实现类的接口所在的包,包下面的所有接口在编译之后都会生成相应的实现类。添加位置:是在Springboot启动类上面添加

package com.tyut.pet;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;

@MapperScan({"com.pet.mapper"})
public class PetApplication {
    public static void main(String[] args) {
        SpringApplication.run(PetApplication.class, args);
    }
}

@Controller(@RequestMapping)

在SpringMVC中,控制器Controller负责处理又DIspatcherServlet分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model,然后再把该Model返回给对应的View进行展示。在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestParam 等一些注解用以定义URL 请求和Controller 方法之间的映射,这样的Controller 就能被外界访问到。此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。

@Controller
public class MyController {

    @RequestMapping ( "/showView" )
    public ModelAndView showView() {
       ModelAndView modelAndView = new ModelAndView();
       modelAndView.setViewName( "viewName" );
       modelAndView.addObject( " 需要放到 model 中的属性名称 " , " 对应的属性值,它是一个对象 " );
       return modelAndView;
    }

}

在上面的示例中,@Controller 是标记在类MyController 上面的,所以类MyController 就是一个SpringMVC Controller 对象了,然后使用@RequestMapping(“/showView”) 标记在Controller 方法上,表示当请求/showView.do 的时候访问的是MyController 的showView 方法,该方法返回了一个包括Model 和View 的ModelAndView 对象。

@Autowired

使用 @Autowired 注解,可以省略手动编写代码来实例化和设置组件的属性的步骤。Spring 框架会自动扫描应用程序中所有使用了 @Component、@Service、@Repository 等注解的类

@Service
public class MyService {
    @Autowired
    private MyRepository repository;

    public List<MyEntity> getAllEntities() {
        return repository.findAll();
    }
}

@Repository
public class MyRepository {
    public List<MyEntity> findAll() {
    }
}

在这个示例中,MyService 组件使用 @Autowired 注解来自动装配 MyRepository 组件。当 MyService 实例化时,Spring 框架会自动创建 MyRepository 的实例,并将它注入到 MyService 中。然后,MyService 可以使用 repository 属性来访问 MyRepository 提供的方法,例如 findAll() 方法。

@ResponseBody

参考
作用:将java对象转为json格式的数据

将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据。

原理:@ResponseBody 表示该方法的返回结果直接写入 HTTP response body 中,一般在异步获取数据时使用(也就是AJAX)。
注意:在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。 比如异步获取 json 数据,加上 @ResponseBody 后,会直接返回 json 数据。@RequestBody 将 HTTP 请求正文插入方法中,使用适合的 HttpMessageConverter 将请求体写入某个对象。

@RequestMapping(value = "user/login")
@ResponseBody
// 将ajax(datas)发出的请求写入 User 对象中
public User login(@RequestBody User user) {   
// 这样就不会再被解析为跳转路径,而是直接将user对象写入 HTTP 响应正文中
    return user;    
}

pom.xml中加入依赖

pom.xml中右键,选中generate,里面有Dependency,在里面查找想要的依赖。

IService接口

IService通常是一个接口,其作用是定义一个服务的功能和方法。IService接口它可以将一个复杂的服务分解成多个小的服务,每个小的服务都有一个对应的IService接口,这样可以降低服务之间的耦合性,提高代码的可读性和可维护性。
IService接口通常会定义服务的方法、输入参数、返回值等。IService接口可以被实现为不同的服务,例如一个数据库访问服务、一个文件访问服务、一个邮件服务等。通过使用IService接口,客户端可以方便地使用服务,并且可以轻松地切换不同的服务实现。源码

IService的使用

①mapper接口继承basemapper接口
②service接口继承Iservice
③service接口的实现类继承ServiceImpl<继承basemapper的mapper,实体类>,实现IUserService接口

Cookie

来源

作用:我们知道,平时上网时都是使用无状态的HTTP协议传输出数据,这意味着客户端与服务端在数据传送完成后就会中断连接。这时我们就需要一个一直保持会话连接的机制。在session出现前,cookie就完全充当了这种角色。也就是,cookie的小量信息能帮助我们跟踪会话。一般该信息记录用户身份。
原理:客户端请求服务器时,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。而客户端浏览器会把Cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器通过检查该Cookie来获取用户状态。

Cookie cookie = new Cookie("username","joker");// 新建Cookie
cookie.setMaxAge(24*60*60);                    // 设置生命周期
response.addCookie(cookie);                    // 

你可能感兴趣的:(java,java,mybatis)