• Spring(五)


    Spring注解开发

    在spring4之后,想要使用注解形式,必须得要引入aop的包

    在配置文件当中,还得要引入一个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>

     

    Bean的实现

    我们之前都是使用 bean 的标签进行bean注入,但是实际开发中,我们一般都会使用注解!

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

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

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

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

    3、测试

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

     

    属性注入

    使用注解注入属性

    1、可以不用提供set方法,直接在直接名上添加@value("值")

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

    2、如果提供了set方法,在set方法上添加@value("值");

     @Component("user")
     public class User {  
         public String name;
         @Value("秦疆")  
         public void setName(String name) {
             this.name = name;
        }
     }

     

    衍生注解

    我们这些注解,就是替代了在配置文件当中配置步骤而已!更加的方便快捷!

    @Component三个衍生注解

    为了更好的进行分层,Spring可以使用其它三个注解,功能一样,目前使用哪一个功能都一样。

    • @Controller:web层

    • @Service:service层

    • @Repository:dao层

    写上这些注解,就相当于将这个类交给Spring管理装配了!

    自动装配注解

    在Bean的自动装配

    作用域

    @scope

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

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

     @Controller("user")@Scope("prototype")public class User {   @Value("秦疆")   public String name;}

     

    小结

    XML与注解比较

    • XML可以适用任何场景 ,结构清晰,维护方便

    • 注解不是自己提供的类使用不了,开发简单方便

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

    • xml管理Bean

    • 注解完成属性注入

    • 使用过程中, 可以不用扫描,扫描是为了类上的注解

     <context:annotation-config/>  

    作用:

    • 进行注解驱动注册,从而使注解生效

    • 用于激活那些已经在spring容器里注册过的bean上面的注解,也就是显示的向Spring注册

    • 如果不扫描包,就需要手动配置bean

    • 如果不加注解驱动,则注入的值为null!

  • 相关阅读:
    使用SeaJS实现模块化JavaScript开发
    使用antixss防御xss
    AntiXSS
    FFmpeg 安装、日常使用及应用场景记录与总结。
    Cygwin 安装、设置及配置 FaTTY 多标签页(Tabs)
    Python 爬取B站(Bilibili.com)UP主的所有公开视频链接及信息
    windows10 彻底删除蓝牙设备,蓝牙设备删除失败解决方案
    VSCode 常用设置、快捷键及插件
    Python 文件IO:JSON 文件的读取与写入
    Python 文件IO:TXT 文件的读取与写入
  • 原文地址:https://www.cnblogs.com/ltw222/p/14910175.html
Copyright © 2020-2023  润新知