一:spring常用的注解:
@Configuration把一个类作为一个IoC容器,它的某个方法头上如果注册了@Bean,就会作为这个Spring容器中的Bean。
@Scope注解 作用域
@Lazy(true) 表示延迟初始化
@Service用于标注业务层组件、
@Controller用于标注控制层组件(如struts中的action)
@Repository用于标注数据访问组件,即DAO组件。
@Component泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注。
@Scope用于指定scope作用域的(用在类上)
@PostConstruct用于指定初始化方法(用在方法上)
@PreDestory用于指定销毁方法(用在方法上)
@DependsOn:定义Bean初始化及销毁时的顺序
@Primary:自动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为首选者,否则将抛出异常
@Autowired 默认按类型装配,如果我们想使用按名称装配,可以结合@Qualifier注解一起使用。如下:
@Autowired @Qualifier("personDaoBean") 存在多个实例配合使用
@Resource默认按名称装配,当找不到与名称匹配的bean才会按类型装配。
@PostConstruct 初始化注解
@PreDestroy 摧毁注解 默认 单例 启动就加载
@Async异步方法调用
二:springmvc常用注解
1)、springMVC中的注解@RequestParam与@PathVariable的区别(摘自https://www.cnblogs.com/zlw-xf/p/8035215.html)
2、@PathVariable是用来获得请求url中的动态参数的
3、@PathVariable用于将请求URL中的模板变量映射到功能处理方法的参数上。//配置url和方法的一个关系@RequestMapping("item/{itemId}")
@RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,类似于struts的action请求
* @responsebody表示该方法的返回结果直接写入HTTP response body中
*一般在异步获取数据时使用,在使用@RequestMapping后,返回值通常解析为跳转路径,加上@responsebody后返回结果不会被解析为跳转路径,而是直接写入HTTP response *body中。*比如异步获取json数据,加上@responsebody后,会直接返回json数据。*
*@Pathvariable注解绑定它传过来的值到方法的参数上,*用于将请求URL中的模板变量映射到功能处理方法的参数上,即取出uri模板中的变量作为参数
给出代码事例
@RestController public class HelloSpringBoot {/** * url传参,访问的路径类似这样:localhost:8080/getParamDemo1/1 * 方法体中的参数要在前面加注释,@PathVariable,代表url中的参数 */ @RequestMapping(path = {"/getParamDemo1/{id}"}) public String getParamDemo1 (@PathVariable("id") int userId){ System.out.println("get param " + userId); return "success get param"; } /** * 当然,你也可以通过这种传参方式:localhost:8080/getParamDemo?param1=1或者直接表单提交参数 * 当然,同时方法中参数声明的注释也要变成@RequestParam,代表请求参数,required属性说明了参数是否是必须的 */ @RequestMapping(path = {"/getParamDemo2"}) public String getParamDemo2 (@RequestParam(value="param1",required = false) int param){ System.out.println("get param " + param); return "success get param"; } }