@Controller加在类上面的注解,使得类里面的每个方法都返回一个试图页面。
@Controller和@ResponseBody(加在方法/类上面)一起使用,和@RestController的作用相同,将json/xml数据发送到前台页面,而不是返回视图页面。
@Controller
public class HelloController {
@GetMapping(value="/hello")
public String say(){
return "gril";
}
}
Spring 4.0
把普通pojo实例化到spring容器中,相当于配置文件中
泛指各种组件,就是说当我们的类不属于各种归类的时候(不属于@Controller、@Services等的时候),我们就可以使用@Component来标注这个类。
Spring 2.5
用于标注业务层组件
一个类带了@Service注解,将自动注册到Spring容器,不需要再在applicationContext.xml文件定义bean了,类似的还包括@Component、@Repository、@Controller。
Spring 2.5
@Data可以为类提供读写功能,从而不用写get、set方法。他还会为类提供 equals()、hashCode()、toString() 方法。
org.projectlombok
lombok
1.16.10
Spring4之后新加入的注解,@RestController和@RequestMapping注解是Spring MVC 的注解。原来返回json需要@ResponseBody和@Controller配合。即@RestController是@ResponseBody和@Controller的组合注解
@RequestMapping:注解提供“路由”信息。 告诉Spring,任何具有路径“/”的HTTP请求都应映射到home方法。
@RestController
@RequestMapping("sys/userorg")
public class SysUserOrgController extends AbstractController {
@Autowired
private SysUserOrgService sysUserOrgService;
@GetMapping("/queryAll")
// @RequiresPermissions("sys:teacher:queryAll")
public RestResponse queryAll(@RequestParam Map params) {
List list = sysUserOrgService.queryAll(params);
return RestResponse.success().put("list", list);
}
}
Spring MVC 的注解
Spring4.3中引进,@GetMapping、@PostMapping、@PutMapping、@DeleteMapping、@PatchMapping,帮助简化常用的HTTP方法的映射,并更好地表达被注解方法的语义
Spring MVC 的注解
将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据,需要注意的呢,在使用此注解之后不会再走试图处理器,而是直接将数据写入到输入流中,他的效果等同于通过response对象输出指定格式的数据
@RequestMapping(path = "/hello", method = RequestMethod.POST)
@ResponseBody
public String helloWorld() {
return "Hello Simon"
}
等价于:
@RequestMapping("/hello")
public void helloWorld(HttpServletResponse response){
response.getWriter.write("Hello Simon");
}
Spring MVC 的注解
将指定的请求参数赋值给方法中的形参,限制了访问时候的参数内容,在参数中可以不加也可以访问接口,但是加了就必须这么传,不然会报错。
public RestResponse upload( @RequestParam("orgNo") String orgNo) {
}
括号中的参数:
(1)value:请求参数名(必须配置)
(2)required:是否必需,默认为 true,即 请求中必须包含该参数,如果没有包含,将会抛出异常(可选配置)
(3)defaultValue:默认值,如果设置了该值,required 将自动设为 false,无论你是否配置了required,配置了什么值,都是 false(可选配置)
Spring MVC 的注解
自动注入一个 Source 类型的 Bean 资源,对类成员变量、方法及构造函数进行标注,完成自动装配的工作。 通过 @Autowired的使用来消除 set ,get方法,实现从bean 工厂中获取一个bean时,Spring会自动为我们装配该bean中标记为@Autowired的元素。
@Service("sysCacheService")
public class SysCacheServiceImpl implements SysCacheService {
@Autowired
private JedisUtil jedisUtil;
@Override
public List queryAll(Map params) {
return result;
}
}
Spring 2.5
它是shiro注解权限控制-5个权限注解之一(RequiresRoles、RequiresPermissions、RequiresAuthentication、RequiresUser、RequiresGuest),当前Subject需要拥有某些特定的权限时,才能执行被该注解标注的方法。如果当前Subject不具有这样的权限,则方法不会被执行。
依赖于Shiro,
Shiro依赖于slf4j,commons-beanutils,commons-logging三个jar包
添加了@Mapper注解之后这个接口在编译时会生成相应的实现类,需要注意的是:这个接口中不可以定义同名的方法,因为会生成相同的id,也就是说这个接口是不支持重载的。用在DAO层
@Mapper
public interface UserDAO {
@Select("select * from user where name = #{name}")
public User find(String name);
@Select("select * from user where name = #{name} and pwd = #{pwd}")
/**
* 对于多个参数来说,每个参数之前都要加上@Param注解,
* 要不然会找不到对应的参数进而报错
*/
public User login(@Param("name")String name, @Param("pwd")String pwd);
}
依赖于mybatis
声明此对象映射到数据库的数据表,通过它可以为实体指定表(talbe)。
@Data
@TableName("SYS_LOG")
public class SysLogEntity implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private String id;
/**
* 用户名
*/
private String userName;
/**
* 用户操作
*/
private String operation;
}
mybatis-plus