@Controller
作用: ⽤于标记这个类是⼀个控制器,返回⻚⾯的时候使⽤;如果要返回JSON,则需要在接⼝上使⽤@ResponseBody才可以
@RestController
作用: ⽤于标记这个类是⼀个控制器,返回JSON数据的时候使⽤,如果使⽤这个注解,则接⼝返回数据会被序列化为JSON
@RestController = @Controller+@ResponseBody
@RequestMapping
作用: 路由映射,⽤于类上做1级路径,⽤于某个⽅法上做⼦路径
位置: ①标识类:设置映射请求的请求路径的初始信息;②方法:设置映射请求的请求路径的具体信息
@SpringBootApplication
作用: ⽤于标记是SringBoot应⽤,⾥⾯包含多个⼦注解
@SpringBootApplication =@Configuration+@EnableAutoConfiguration+@ComponentScan
@Configuration
主要标注在某个类上,⽤于spring扫描注⼊,⼀般结合@Bean使⽤
@EnableAutoConfiguration
启⽤Spring的⾃动加载配置,⾃动载入应用程序所需的所有Bean
@ComponentScan
告诉spring扫描包的范围,默认是Applocation类所在的全部⼦包,可以指定
其他包
return 1个POJO对象(不能返回字符串)
src/main/java
:存放代码
src/main/resources
/static
: 存放静态⽂件,⽐如 css、js、image, (访问⽅式http://localhost:8080/js/main.js)
/templates
:存放静态⻚⾯jsp,html,tpl
/config
:存放配置⽂件,application.properties
同个⽂件的加载顺序,静态资源⽂件Spring Boot 默认会挨个从META/resources >resources >static >public
⾥⾯找是否存在相应的资源,如果有则直接返回,不在默认加载的⽬录,则找不到
默认配置:spring.resources.static-locations = classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/
1、IDEA开发中启动(本地开发中常⽤)
2、外置Tomcat中启动(接近淘汰)
3、Jar方式打包启动(官方推荐,工作中最常用)
步骤:(1)pom⽂件新增maven插件
如果没有加,则执⾏jar包 ,报错如下 java -jar spring-boot-demo-0.0.1-SNAPSHOT.jar no main manifest attribute, in spring-boot-demo-0.0.1-SNAPSHOT.jar
(2)打包、启动命令
构建:mvn install
构建跳过测试类:mvn install -Dmaven.test.skip=true
target⽬录下有对应的jar包就是打包后项⽬
进到对应的target⽬录启动:java -jar xxxxx.jar
后台运⾏,⽤守护进程:nohup java -jar xxx.jar &
1、配置启动类
2、建立对应的包,先建立这些包,其他用到再补充
(1)controller
(2)service
(3)dao/mapper(与数据库交互语句的封装)
(4)domain(Javabean)
(5)utils(工具)
3、初始化数据
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@GetMapping = @RequestMapping(method = RequestMethod.GET)
@PostMapping = @RequestMapping(method = RequestMethod.POST)
@PutMapping = @RequestMapping(method = RequestMethod.PUT)
@DeleteMapping = @RequestMapping(method = RequestMethod.DELETE)
案例思路:VideoController类方法调用VideoService接口的listVideo方法,VideoService接口的VideoServiceImpl实现类listVideo方法返回VideoMapper类的listVideo方法,VideoMapper类listVideo方法输出Video类型的list数据
JSONData工具类开发
code:状态码(0,表示成功;1,表示处理中;-1表示失败)
data:数据
msg:描述
POST请求->form表单
场景:表单提交,如果不⽤细分PUT/DELETE⽅法,则都可以⽤POST
@PostMapping = @RequestMapping(method = RequestMethod.POST)
案例思路:UserController类中login方法调用UserService接口的login方法,UserService接口的UserServiceImpl实现类login方法调用UserMapper类的login方法,UserMapper类login方法判断输入的密码是否正确对应输入的用户名,正确返回user对象,错误返回null给UserServiceImpl实现类,如果返回不为null,则使用UUID.randomUUID().toString()创建一个token“令牌”并返回token给UserController类中login方法,并进行判断token是否为null,是否正确。
运行启动类,在postman输入传入的接送数据,查询是否登陆成功:
作用: 把前端传来的参数自动封装到后端的javabean对象中,使用@RequestBody接收数据时,一般都用POST方式进行提交,并且后端接收前端传递来的多个参数信息的时候,可以直接使用一个对象接收。
@JsonIgnore
查询全部用户时:
运行结果:密码也返回了
在user的javabean中的pwd字段使用@JsonIgnore
注解:
运行结果:
@JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
使用注解之前:
使用注解之后:
@JsonInclude(Include.NON_NULL)
使用注解后运行:chapterList为null没有返回
1、当启动类和controller在同⼀类中时,在该类上添加注解@Controller即可;
2、当启动类和controller分开时,启动类要放在根⽬录下,启动类上只需要注解
@SpringBootApplication;
3、当启动类和controller分开时,如果启动类在⾮根⽬录下,需要在启动类中增加注解@ComponentScan,并配置需要扫描的包名,如(basePackages = )
@ComponentScan(basePackages ={“net.xdclass.controller”,“net.xdclass.service”})
terminal命令行执行java -jar xxxx.jar
报错:Error: Unable to access jarfile xxxx.jar
1、确定生成的jar包位置:
2、使用cd移动到生成的jar包位置(如果cd命令无法转到D盘的路径),重新执行java -jar xxxx.jar
命令,成功。
免费下载直通车