Spring(五):使用注解开发

使用注解形式,必须得要引入aop的包
在这里插入图片描述
导入约束:

<dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.2.5.RELEASE</version>
        </dependency>

还需要引入一个context约束

<?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
       http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context.xsd">

</beans>

1.Bean的实现

1、配置扫描哪些包下的注解

<!--指定注解扫描包-->
<context:component-scan base-package="com.Devin.pojo"/>

2、在指定包下编写类,增加注解

@Component("user")
// 相当于配置文件中 <bean id="user" class="当前注解的类"/>
public class User {
   public String name = "Devion";
}

3、测试

@Test
public void test(){
   ApplicationContext applicationContext =
       new ClassPathXmlApplicationContext("beans.xml");
   User user = (User) applicationContext.getBean("user");
   System.out.println(user.name);
}

2.属性如何注入

@Component相当于:

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

@Value(“Devin学JAVA”):

<property name="name" value="Devin学JAVA"/>
/*
@Component相当于:<bean id="user" class="com.Devin.pojo.User"/>
 */
@Component//组件
public class User {
    @Value("Devin学JAVA")
    public String name;
}

或者value注解写在set方法上

@Component//组件
public class User {
    //@Value("Devin学JAVA")
    public String name;

    @Value("Devin学JAVA")
    public void setName(String name) {
        this.name = name;
    }
}

3.衍生的注解

@Component有几个衍生注解,我们在WEB开发中,会按照mvc三成架构分成

​ 1.dao层 [@Repository]

​ 2.service层 [@Service]

​ 3.controller层 [@Controller]

这四个直接功能都一样,都代表将某个类注册到spring中,装配Bean

4.自动装配

@Autowired:自动装配通过类型  名字

	​如果Autowired不能唯一自动装配属性,则需要通过@Qualifier(value=" ")

@Resource:自动装配通过类型  类型(全限定类名)

5.作用域

@scope

  • singleton:默认的,Spring会采用单例模式创建这个对象。关闭工厂 ,所有的对象都会销毁。

  • prototype多例模式。关闭工厂 ,所有的对象不会销毁。内部的垃圾回收机制会回收

@Controller("user")
@Scope("prototype")
public class User {
   @Value("Devin学JAVA")
   public String name;
}

总结

XML与注解比较

  • XML可以适用任何场景 ,结构清晰,维护方便
  • 注解不是自己提供的类使用不了,维护复杂,但是开发简单方便

xml与注解整合开发 :推荐最佳实践

xml管理Bean

  • 注解完成属性注入

  • 使用过程中, 必须让注解生效,需要开启注解支持,可以用扫描包,这个包下的注解就会被生效

本文章来源于B站(狂神说) B站地址:https://space.bilibili.com/95256449

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 数字20 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读