【Spring常用注解】

SSM框架使用注解前的声明

1.开启注解支持

<context:annotation-config/>

作用:

  • 进行注解驱动注册,从而使注解生效
  • 用于激活那些已经在spring容器里注册过的bean上面的注解,也就是显示的向Spring注册
  • 如果不扫描包,就需要手动配置bean
  • 如果不加注解驱动,则注入的值为null!

2.配置扫描包
使用过程中, 可以不用扫描,扫描是为了类上的注解

<context:component-scan base-package="com.cao.pojo"/>

装配类

@Component相关(结合扫描包实现类的自动装配)

举例:

@Component  //将这个类标注为Spring的一个组件,放到容器中!
public class Dog {
   public String name = "dog";
}

功能:这四个注解功能相同,都是为了将使用注解的类交给Spring管理装配
为了替换在xml文件中显式注册bean

    <bean id="cat" class="com.cao.pojo.Cat"/>
    <bean id="dog" class="com.cao.pojo.Dog"/>
    <bean id="people" class="com.cao.pojo.People"/>

区别:只是为了更好的分层
@Component
@Controller:web层
@Service:service层
@Repository:dao层

lombok(实现相关函数不用写)

功能
使用
@Data
@AllArgsConstructor
@NoArgsConstructor
在这里插入图片描述

装配Bean

使用注解装配Bean有两种方法:

  • @Autowired
  • @Resource

1、@Autowired与@Resource都可以用来装配bean。都可以写在字段上,或写在setter方法上。

2、@Autowired默认按类型装配(属于spring规范),默认情况下必须要求依赖对象必须存在,如果要允许null 值,可以设置它的required属性为false,如:@Autowired(required=false) ,如果我们想使用名称装配可以结合@Qualifier注解进行使用

3、@Resource(属于J2EE规范),默认按名称装配,名称可以通过name属性进行指定。如果没有指定name属性,当注解写在字段上时,默认取字段名进行按照名称查找,如果注解写在setter方法上默认取属性名进行装配。当找不到与名称匹配的bean时才按照类型进行装配。

@Autowired(替换set方法)

功能:替换set方法,按照类型自动转配
在这里插入图片描述

@Autowired结合@Qualifier实现byName自动装配

@Autowired是根据类型自动装配的,加上@Qualifier则可以根据byName的方式自动装配
@Qualifier不能单独使用。
举例:

<bean id="dog1" class="com.kuang.pojo.Dog"/>
<bean id="dog2" class="com.kuang.pojo.Dog"/>
<bean id="cat1" class="com.kuang.pojo.Cat"/>
<bean id="cat2" class="com.kuang.pojo.Cat"/>

没有加Qualifier时测试,直接报错

@Autowired
@Qualifier(value = "cat2")
private Cat cat;
@Autowired
@Qualifier(value = "dog2")
private Dog dog;

测试成功

@Resource

  • @Resource如有指定的name属性,先按该属性进行byName方式查找装配;
  • 其次再进行默认的byName方式进行装配;
  • 如果以上都不成功,则按byType的方式自动装配。
  • 都不成功,则报异常。

实体类:

public class User {
   //如果允许对象为null,设置required = false,默认为true
   @Resource(name = "cat2")
   private Cat cat;
   @Resource
   private Dog dog;
   private String str;
}

beans.xml

<bean id="dog" class="com.kuang.pojo.Dog"/>
<bean id="cat1" class="com.kuang.pojo.Cat"/>
<bean id="cat2" class="com.kuang.pojo.Cat"/>

<bean id="user" class="com.kuang.pojo.User"/>

测试:结果OK

配置文件2:beans.xml , 删掉cat2

<bean id="dog" class="com.kuang.pojo.Dog"/>
<bean id="cat1" class="com.kuang.pojo.Cat"/>

实体类上只保留注解

@Resource
private Cat cat;
@Resource
private Dog dog;

结果:OK

结论:先进行byName查找,失败;再进行byType查找,成功。

SpringBoot常用注解

@PathVariable(从URI模板里面填充)

@RequestParam 和 @PathVariable 注解是用于从request中接收请求的,两个都可以接收参数,关键点不同的是@RequestParam 是从request里面拿取值,而 @PathVariable 是从一个URI模板里面来填充

@RequestParam

http://localhost:8080/hello/101?param1=10&param2=20
@RequestMapping("/hello/{id}")
public String aaa(@PathVariable(value="id") String id,
					@RequestParam(value="param1") String param1,
					@RequestParam(value="param2") String param2){
	//......
	}

Mybatis常用注解

mapper接口上加@Mapper

主类上加@MapperScan(“com.dao.mapper”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值