SpringBoot
是Spring家族的一款主流框架,简化了使用 Spring 的难度。对于SSM来说,我们需要把三个框架整合起来开发,并且需要注意各种配置和兼容,使用SpringBoot的话完成了自动配置。设计目的就是为了简化Spring应用的初始搭建与开发过程,强调约定大于配置,能够减少开发人员做配置的工作。
SpringBoot由几大部分组成
-
起步依赖 在pom.xml文件中的springboot-starter,帮我们封装好了所有需要的依赖
-
自动配置 autoconfigure存在于starter里面,负责配置Bean实例到Spring容器
-
命令行界面 Spring Boot CLI是一个命令行使用Spring Boot的客户端工具
-
监控 Actuator,本身提供了很多接口可以获取当前项目的各项运行状态指标
SpringBoot注解!
-
启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解
-
@SpringBootConfiguration:实现配置文件的功能
-
@EnableAutoConfiguration:打开自动配置的功能
-
@ComponentScan:Spring组件扫描
- @Autowired实现依赖注入,让 Spring 容器帮我们自动装配 bean
@Component
:通用的注解,可标注任意类为Spring
组件。如果一个 Bean 不知道属于哪个层,可以使用@Component
注解标注。@Repository
: 对应持久层@Service
: 对应服务层,@Controller
: 对应 Spring MVC 控制层,- @RestController相当于@Controller+@ResponseBody,这样控制层的方法进行响应是以json格式返回
- @RequestMapping指定控制器可以处理哪些URL请求,若使用Rest风格的话可以用@GetMapping
springmvc到Springboot的简化配置
- 在启动类要有注解@SpringbootApplication
- 在启动类同层的包下创建controller类,为之添加RequestController(相当于Controller+ResponseBody,以json格式,进行数据的响应,给到前端)
- 在控制层类及特定方面上面添加@RequestMapping规定路径,根据ajax的机制就可以链接到控制器类的具体方法,这时候访问http://localhost:8080/users/login就可以得到前端页面的响应了。
Controller接收参数的几种方式
通过实体Bean接收参数:适用于get post提交请求方式,bean的属性名和请求参数名要相同
@RequestMapping("/login")
public String login(User user, Model model) { }
**通过处理方法的形参接收参数:**适用于get post提交请求方式,直接把表单参数写在方法形参中
@RequestMapping("/login")
public String login(
String name, String pwd, Model model) {
if ("bianchengbang".equals(user.getName())&& "123456".equals(user.getPwd())) {
model.addAttribute("message", "登录成功");
return "main"; // 登录成功,跳转到 main.jsp
} else {
model.addAttribute("message", "用户名或密码错误");
return "login";
}}
通过HttpServletRequest接收参数
通过@PathVariable接收URL的参数:
@RequestMapping("/login/{name}/{pwd}")
public String login(
@PathVariable String name, @PathVariable String pwd, Model model) {
if ("bianchengbang".equals(name)&& "123456".equals(pwd)) {
model.addAttribute("message", "登录成功");
return "main"; // 登录成功,跳转到 main.jsp
}
else {
model.addAttribute("message", "用户名或密码错误");
return "login";
}}
通过@RequestParam接收参数:
该方式与“通过处理方法的形参接收请求参数”部分的区别如下:当请求参数与接收参数名不一致时,“通过处理方法的形参接收请求参数”不会报 404 错误,而“通过 @RequestParam 接收请求参数”会报 404 错误。
@RequestMapping("/login")
public String login(
@RequestParam String name, @RequestParam String pwd, Model model) {
if ("bianchengbang".equals(name)
&& "123456".equals(pwd)) {
model.addAttribute("message", "登录成功");
return "main"; // 登录成功,跳转到 main.jsp
} else {
model.addAttribute("message", "用户名或密码错误");
return "login";
}}