Spring 注解

1、@Autowired 自动装配

1)不使用该注解

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd">
    <bean id="cat" class="com.hu.pojo.Cat"/>
    <bean id="dog" class="com.hu.pojo.Dog"/>
    <bean id="people" class="com.hu.pojo.People">
        <property name="name" value="老大"/>
        <property name="cat1" ref="cat"/>
        <property name="dog1" ref="dog"/>
    </bean>
</beans>

2)使用该注解,同时可以不需要set方法

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
        https://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        https://www.springframework.org/schema/context/spring-context.xsd">

    <bean id="cat" class="com.hu.pojo.Cat"/>
    <bean id="dog" class="com.hu.pojo.Dog"/>
    <bean id="people" class="com.hu.pojo.People"/>
    <context:annotation-config/>

</beans>

在这里插入图片描述

2、@Nullable

作用:让这个字段可以为空
在这里插入图片描述

3、@Qualifier

当有多个复杂bean时,可以通过@Qualifier指定你要使用的那一个
在这里插入图片描述

在这里插入图片描述

4、 @Resource

@Resource 同样可以实现自动装配
这个注解是java的注解
而上述的注解是spring的

5、 @Component(组件)

这个注解的作用等价于<bean id="user" class="com.hu.pojo.User"/>
//使用时默认是类名的小写
  @Test
    public void test(){
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        User user = context.getBean("user", User.class);
        System.out.println(user.name);
    }

在这里插入图片描述

6、 @Value

//给属性赋值

在这里插入图片描述

7、@Component衍生注解

pojo层  ------->  @Component
dao层  ------->  @Repository
service层  ------->  @Service
controller层  -------> @Controller

//这四个注解都导入于
//import org.springframework.stereotype
//都是将一个类加入到spring容器中

8、@Scope()

作用:设置单列或双列模式

9、使用注解

<!--
      配置文件中加入
      扫描包下注解
    -->
    <context:component-scan base-package="com.hu"/>
    <context:annotation-config/>

10、Aop使用注解

@Aspect
public class Annon {

    @Before("execution(* com.hu.service.UserServiceImpl.*(..))")
    public void before(){
        System.out.println("方法执行前");
    }
    @After("execution(* com.hu.service.UserServiceImpl.*(..))")
    public void after(){
        System.out.println("方法执行后");
    }

    @Around("execution(* com.hu.service.UserServiceImpl.*(..))")
    public void around(ProceedingJoinPoint pr) throws Throwable {
        System.out.println("环绕前");
        Object proceed = pr.proceed();
        System.out.println("环绕后");
    }
}
//在配置文件开启注解支持
//<aop:aspectj-autoproxy/>

未使用注解
在配置文件中配置

<bean id="diy" class="com.hu.diy.Diy"/>
    <aop:config>
        <aop:aspect ref="diy">
            <aop:pointcut id="point" expression="execution(* com.hu.service.UserServiceImpl.*(..))"/>
            <aop:before method="before" pointcut-ref="point"/>
            <aop:after method="after" pointcut-ref="point"/>
        </aop:aspect>
    </aop:config>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值