注解说明
-@Autowired 自动装配通过类型。名字
如果@Autowired不能唯一自动装配,通过@Qualifier(value = “xxx”)
-- @Nullable 说明该字段可以为空
-@Resource 自动装配通过名字。类型
--@Component 组件 //相当于<bean id="user" class="com.ma.pojo.User"></bean>
放在类上,说明这个类被spring管理了,就是bean
-- @Value("xxx") 给参数赋值
//相当于<property name="name" value="xxx"/> 也可以用在set方法上
pojo--@Component
dao—@Repository
service—@Service
controller-- @Controller
在javaconfig中用
@Configuration // @Configuration代表这是一个配置类,与applicationContext.xml一样
@ComponentScan(basePackages = "com.ma") //使用启用组件扫描
@Import(xxxconfig.class) //导入其他配置
@Bean //注册一个bean,就相当于bean标签
@Scope 注解的目的是用来调节作用域
@Scope("prototype")//多实例,IOC容器启动创建的时候,并不会创建对象放在容器在容器当中,当你需要的时候,需要从容器当中取该对象的时候,就会创建。
@Scope("singleton")//单实例 IOC容器启动的时候就会调用方法创建对象,以后每次获取都是从容器当中拿同一个对象(map当中)。
@Scope("request")//同一个请求创建一个实例
@Scope("session")//同一个session创建一个实例
Springmvc
注解
@RequestParam请求接口时,URL是:http://www.test.com/user/getUserById?userId=1
//@RequestParam用法,注意这里请求后面没有添加参数
@RequestMapping(value = "/test",method = RequestMethod.POST)
public Result test(@RequestParam(value="id",required=false,defaultValue="0")String id)
注意上面@RequestParam用法当中的参数。
<pre style="background:white">@PathVariable("xxx")</pre>
<pre style="margin-left:21.0pt;mso-para-margin-left:2.0gd;background:white">通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“) </pre>
<pre style="margin-left:21.0pt;mso-para-margin-left:2.0gd;background:white">@RequestMapping(“user/{id}/{name}”)</pre>
<pre style="margin-left:21.0pt;mso-para-margin-left:2.0gd;background:white">请求路径:http://localhost:8080/user/1/james</pre>
@PathVariable主要用于接收http://host:port/path/{参数值}数据。@RequestParam主要用于接收http://host:port/path?参数名=参数值数据,这里后面也可以不跟参数值。
@Controller 控制层
@RequestMapping("/xxx/{xxx}")请求
Post请求:@RequestMapping(value="/test",method = RequestMethod.POST)
RequestMapping中有六个属性分别是:
value: 指定请求的实际地址,指定的地址可以是URI Template 模式;
method: 指定请求的method类型, GET、POST、PUT、DELETE等;
consumes: 指定处理请求的提交内容类型(Content-Type),例如application/json, text/html;
produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回;
params: 指定request中必须包含某些参数值是,才让该方法处理。
headers: 指定request中必须包含某些指定的header值,才能让该方法处理请求。
@ResponseBody 不会通过视图解析器 直接传递一个字符串
就可以理解成将java的对象转换成json字符串的格式给前端解析
@RequestBody 来处理请求的json格式数据