目录
@ResponseBody
总结:将java对象转为json格式的数据。
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。
注意:在使用此注解之后不会再走视图处理器,而是直接将数据写入到 HTTP response body 中,一般在异步获取数据时使用【也就是AJAX】,他的效果等同于通过response对象输出指定格式的数据。
注意:在使用 @RequestMapping后,返回值通常解析为跳转路径,但是加上 @ResponseBody 后返回结果不会被解析为跳转路径,而是会直接返回 json 数据。
原文链接:https://blog.csdn.net/originations/article/details/89492884
@RequestMapping
public interface RequestMapping extends Annotation {
// 指定映射的名称
public abstract String name();
// 指定请求路径的地址
public abstract String[] value();
// 指定请求的方式,是一个RequsetMethod数组,可以配置多个方法
public abstract RequestMethod[] method();
// 指定参数的类型
public abstract String[] params();
public abstract String[] headers();
// 指定数据请求的格式,例如application/json, text/html;
public abstract String[] consumes();
// 指定返回的内容类型
public abstract String[] produces();
@RequestParam
将请求参数绑定到你控制器的方法参数上(是springmvc中接收普通参数的注解)
@RequestParam(value=”参数名”,required=”true/false”,defaultValue=”0/null”)
@PathVariable
@PathVariable是spring3.0的一个新功能:接收请求路径中占位符的值
通过 @PathVariable 可以将URL中占位符参数{xxx}绑定到处理器类的方法形参中@PathVariable(“xxx“)
@Controller
@RequestMapping(path = "/user")
@ResponseBody
public class UserController {
@RequestMapping(value="/{id}/{name}", method=RequestMethod.GET)
public String showUser(@PathVariable("id") Integer id,@PathVariable("name") String name) {
//...
return id+name;
}
}
@Autowired
容器启动时就可以 自动按类型装配依赖对象(可以作用在属性、普通方法、构造器、方法形参上)
默认情况下它要求依赖对象必须存在,如果允许null值,可以设置它required属性为false。
@Resource
与@Autowired类似,按名字装配依赖对象
可以自定义
-
如果同时指定了name和type,则从Spring上下文中找到唯一匹配的bean进行装配,找不到则抛出异常
-
如果指定了name,则从上下文中查找名称(id)匹配的bean进行装配,找不到则抛出异常
-
如果指定了type,则从上下文中找到类型匹配的唯一bean进行装配,找不到或者找到多个,都会抛出异常
-
如果既没有指定name,又没有指定type,则自动按照byName方式进行装配;如果没有匹配,则回退为一个原始类型进行匹配,如果匹配则自动装配;
@component
(把普通pojo实例化到spring容器中,相当于配置文件中的<bean id="" class=""/>
)
@Configuration
@Configuration标注在类上,相当于把该类作为spring的xml配置文件中的<beans>
,作用为:配置spring容器(应用上下文)
详解:
-
被注解的类内部包含有一个或多个被@Bean注解的方法,这些方法将会被扫描,用于构建bean定义,初始化Spring容器。
-
多用于标注一个全局配置的类,可替换xml配置文件,被该注解修饰的类中 所有带 @Bean 注解的方法都会被cglib动态代理,因此调用该方法返回的都是同一个bean实例。
-
可以采用@Configuration+@Bean,注册实例
-
也可以采用@Configuration+@component+@ComponentScan,注册实例
@ConfigurationProperties(prefix=“xxx”)
读取properties配置文件,指定前缀。
@Component
@ConfigurationProperties(prefix="redis")
public class RedisConfig {
private String host;
public String getHost() {
return host;
}
public void setHost(String host) {
this.host = host;
}
# redis
redis.host=192.168.40.132
redis.port=6379
redis.timeout=3
# redis.password=123456
redis.poolMaxTotal=10
redis.poolMaxIdle=10
redis.poolMaxWait=3
@Transactional
简言之,作用在方法上时,该方法的操作为一个事务,如果发生异常,事务回滚到最初状态。例如数据库的增、删。
属性如下:
- transactionManager
- propagation:传播行为
- isolation:隔离级别
- timeout:超时时间
- readOnly:是否只读
- rollbackFor等等…