-
Spring注解开发
1、使用注解需要导入的依赖
1、1在application.xml文件中加入该约束
xmlns:context=http://www.springframework.org/schema/context
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
并且需要加入标签开启该注解
或指定要扫描的包,包下的注解就会生效
最终xml代码
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
1、2对应注解含义
@Autowired 自动装配,优先匹配类型,后名字
@Qualifier(value = "xxx")可指定自动装配的id
@Resource(name = "xxx") 自动装配,优先名字,后类型,也可指定名称
@Nullable 该注解后的参数可为空
@Component 组件,放在类上,说明该类被spring管理了,就是bean
mvc三层架构:
dao:@Repository
service:@Service
Controller:@Controller
功能一样,都是将该类注册到spring中,装配bean
该注解需配合 扫包进行使用
任需ClassPathXmlApplicationContext,无法脱离配置文件
@Value("xxx")该注解用于给属性进行注入,也能够直接注入与set方法中
@Scope("xxx")该注解指定对应类的作用域,是单例模式或原型模式或其它
lombok包下的快速生成实体类对象的注解{
@NoArgsConstructor快速创建无参构造
@AllArgsConstructor 快速创建有参构造
@Data 快速创建get,set
}
spring4之后要使用注解必须导入aop包,若发现注解无效,可查看是否导入该包
使用java配置spring,完全舍弃spring的xml配置文件
@Configuration:将类指定为spring配置类
@Bean:指定该方法为xml中相当于 需返回一个实体类
@ComponentScan("xxxx"):使该配置类只扫描到指定的包下
@Import({xxx.class}):合并多个配置类
SpingMVC注解开发
@RequestMapping("/xxx"):该注解可映射一个访问路径,在单个方法上时直接访问 http://localhost:8080/xxx
在类上时访问需加上类的访问路径 http://localhost:8080/类上的映射名/xxx
在返回单纯的数据时,它可以进行乱码解析
@RequestMapping(value = "/sda",produces = "application/json;charset=utf-8")
RestFul风格
@PathVariable
加在参数前,可定义为路径变量
未使用前
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulTest {
@RequestMapping("restful")
public String restful(int a, int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
使用后
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulTest {
@RequestMapping("/restful/{a}/{b}")
public String restful(@PathVariable int a, @PathVariable int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
restful是一种风格,并非规范或标准
restful指定访问方式
@RequestMapping(value
value可换成path,禁止使用name,会出问题
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class RestfulTest {
@RequestMapping(value = "/restful/{a}/{b}",method = RequestMethod.GET)
public String restful(@PathVariable int a, @PathVariable int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
通过在注解中选择method可以指定通过什么方式来进行访问该路径才能得到对应的方法。
通过另外的注解也能实现对应的效果
@RequestMapping(name = "/restful/{a}/{b}",method = RequestMethod.GET)
//get方法可以用
@GetMapping("xxx")
//相同的,也有DeleteMapping等对应的注解可以实现method = RequestMethod.xxx
使用GetMapping注解接收前端参数,可直接从参数中获取,也可使用注解指定参数名
@GetMapping("/t1")
public ModelAndView he(@RequestParam("hs")String hs,User user){
System.out.println(user);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg",user+"\n"+hs);
modelAndView.setViewName("hello");
return modelAndView;
}
@RequestParam("xxx") 指定该参数接收时的参数名必须为xxx
@Param("xxx")也可给指定参数一个别名
向前端返回数据,绕过视图解析器
在方法上写上@ResponseBody添加该注解,则绕过视图解析器,仅返回数据,不跳转视图
在类上添加@RestController注解,该类下的所有方法都只会返回数据,不跳转视图
Qualifier
@Qualifier
当bean中存在多个BookService类型对象时,搭配@Qualifier(“实现类名称”)表明注入的是哪一个具体实现类的bean(与 @Autowired配合使用加以区分)
---------------------
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:你好,高同学 源地址:https://www.cnblogs.com/nhgtx/p/16897392.html
来源:博客园cnblogs
© 版权声明:本文为博主原创文章,转载请附上博文链接!
1、1在application.xml文件中加入该约束
xmlns:context=http://www.springframework.org/schema/context
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
并且需要加入标签开启该注解
或指定要扫描的包,包下的注解就会生效
最终xml代码
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
1、2对应注解含义
@Autowired 自动装配,优先匹配类型,后名字
@Qualifier(value = "xxx")可指定自动装配的id
@Resource(name = "xxx") 自动装配,优先名字,后类型,也可指定名称
@Nullable 该注解后的参数可为空
@Component 组件,放在类上,说明该类被spring管理了,就是bean
mvc三层架构:
dao:@Repository
service:@Service
Controller:@Controller
功能一样,都是将该类注册到spring中,装配bean
该注解需配合
任需ClassPathXmlApplicationContext,无法脱离配置文件
@Value("xxx")该注解用于给属性进行注入,也能够直接注入与set方法中
@Scope("xxx")该注解指定对应类的作用域,是单例模式或原型模式或其它
lombok包下的快速生成实体类对象的注解{
@NoArgsConstructor快速创建无参构造
@AllArgsConstructor 快速创建有参构造
@Data 快速创建get,set
}
spring4之后要使用注解必须导入aop包,若发现注解无效,可查看是否导入该包
使用java配置spring,完全舍弃spring的xml配置文件
@Configuration:将类指定为spring配置类
@Bean:指定该方法为xml中相当于
@ComponentScan("xxxx"):使该配置类只扫描到指定的包下
@Import({xxx.class}):合并多个配置类
SpingMVC注解开发
@RequestMapping("/xxx"):该注解可映射一个访问路径,在单个方法上时直接访问 http://localhost:8080/xxx
在类上时访问需加上类的访问路径 http://localhost:8080/类上的映射名/xxx
在返回单纯的数据时,它可以进行乱码解析
@RequestMapping(value = "/sda",produces = "application/json;charset=utf-8")
RestFul风格
@PathVariable
加在参数前,可定义为路径变量
未使用前
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulTest {
@RequestMapping("restful")
public String restful(int a, int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
使用后
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class RestfulTest {
@RequestMapping("/restful/{a}/{b}")
public String restful(@PathVariable int a, @PathVariable int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
restful是一种风格,并非规范或标准
restful指定访问方式
@RequestMapping(value
value可换成path,禁止使用name,会出问题
package com.kuang.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
@Controller
public class RestfulTest {
@RequestMapping(value = "/restful/{a}/{b}",method = RequestMethod.GET)
public String restful(@PathVariable int a, @PathVariable int b, Model model){
int c = a+b;
model.addAttribute("msg",c);
return "hello";
}
}
通过在注解中选择method可以指定通过什么方式来进行访问该路径才能得到对应的方法。
通过另外的注解也能实现对应的效果
@RequestMapping(name = "/restful/{a}/{b}",method = RequestMethod.GET)
//get方法可以用
@GetMapping("xxx")
//相同的,也有DeleteMapping等对应的注解可以实现method = RequestMethod.xxx
使用GetMapping注解接收前端参数,可直接从参数中获取,也可使用注解指定参数名
@GetMapping("/t1")
public ModelAndView he(@RequestParam("hs")String hs,User user){
System.out.println(user);
ModelAndView modelAndView = new ModelAndView();
modelAndView.addObject("msg",user+"\n"+hs);
modelAndView.setViewName("hello");
return modelAndView;
}
@RequestParam("xxx") 指定该参数接收时的参数名必须为xxx
@Param("xxx")也可给指定参数一个别名
向前端返回数据,绕过视图解析器
在方法上写上@ResponseBody添加该注解,则绕过视图解析器,仅返回数据,不跳转视图
在类上添加@RestController注解,该类下的所有方法都只会返回数据,不跳转视图
Qualifier
@Qualifier
当bean中存在多个BookService类型对象时,搭配@Qualifier(“实现类名称”)表明注入的是哪一个具体实现类的bean(与 @Autowired配合使用加以区分)
---------------------
著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。
作者:你好,高同学 源地址:https://www.cnblogs.com/nhgtx/p/16897392.html
来源:博客园cnblogs
© 版权声明:本文为博主原创文章,转载请附上博文链接!
栏目列表
最新更新
80386学习(二) 80386特权级保护
80386学习(一) 80386CPU介绍
8086汇编语言学习(十) 8086中断
8086汇编语言学习(九) 8086标志寄存器
8086汇编语言学习(九) 8086标志寄存器
8086汇编语言学习(八) 8086子程序
8086汇编语言学习(六) 8086处理结构化数据
8086汇编语言学习(五) 8086寻址方式
8086汇编语言学习(四) 8086汇编程序的编译
8086汇编语言学习(三) 8086中的段和栈
三大常用数据库事务详解之三:事务运行
三大常用关系型数据库事务详解之二:基
三大关系型数据库事务详解之一:基本概
MongoDB常用命令(2)
MongoDB基本介绍与安装(1)
SQLServer触发器调用JavaWeb接口
SQL Server索引的原理深入解析
SqlServer2016模糊匹配的三种方式及效率问题
SQL中Truncate的用法
sqlserver 多表关联时在where语句中慎用tri
在vscode中使用R时,用快捷键来快捷键入卡
VB.NET中如何快速访问注册表
ASP.NET中图象处理过程详解
Vue(1)Vue安装与使用
JavaScript 语言入门
js将一段字符串的首字母转成大写
纯原生html编写的h5视频播放器
H5仿原生app短信验证码vue2.0组件附源码地
TypeScript(4)接口
TypeScript(3)基础类型