• 使用注解开发


    (1)在spring4之后,要使用注解开发,必须要保证aop的包导入了

     

    使用注解需要导入context约束,增加注解的支持!

    精简版:

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans
    6. https://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context
    8. https://www.springframework.org/schema/context/spring-context.xsd">
    9. <context:annotation-config/>
    10. beans>

    扩展版: 

    1. "1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xmlns:context="http://www.springframework.org/schema/context"
    5. xsi:schemaLocation="http://www.springframework.org/schema/beans
    6. https://www.springframework.org/schema/beans/spring-beans.xsd
    7. http://www.springframework.org/schema/context
    8. https://www.springframework.org/schema/context/spring-context.xsd">
    9. <context:annotation-config/>
    10. <context:component-scan base-package="com.gt.pojo"/>
    11. beans>

    (2)bean

     绿色的叶子表示放入组件当中!

     

     User

    1. package com.gt.pojo;
    2. import org.springframework.stereotype.Component;
    3. //@Component 等价于
    4. //@Component 组件
    5. @Component
    6. public class User {
    7. public String name = "山姆";
    8. }

    MyTest

    1. import com.gt.pojo.User;
    2. import org.springframework.context.ApplicationContext;
    3. import org.springframework.context.support.ClassPathXmlApplicationContext;
    4. public class MyTest {
    5. public static void main(String[] args) {
    6. ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
    7. //getBean括号里面的东西就是默认类的小写
    8. User user = context.getBean("user",User.class);
    9. System.out.println(user.name);
    10. }
    11. }

     

    (3)属性如何注入

    • @Component 等价于
    • @Component 就是组件
    • @Value("shanmu2") 相当于在beans.xml中
       

    User

    1. package com.gt.pojo;
    2. import org.springframework.beans.factory.annotation.Value;
    3. import org.springframework.stereotype.Component;
    4. //@Component 等价于
    5. //@Component 组件
    6. @Component
    7. public class User {
    8. //@Value("shanmu2") 相当于在beans.xml中
    9. public String name;
    10. @Value("shanmu2")
    11. public void setName(String name) {
    12. this.name = name;
    13. }
    14. }

     

     扩展(Web):

    1、衍生的注解

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

    • dao【@Repository】

    • service【@Service】

    • controller【@Controller】

      这四个注解功能都是一样的,都是代表某个类注册到spring,装配bean

     

    2、自动装配

    • @Autowired:自动装配通过类型。名字
    • @Qualifier:如果Autowired不能唯一自动装配上属性,则需要通过@Qualifier(value='xxx')
    • @Resource:自动装配通过名字。类型
    • @Component 等价于
    • @Scope("prototype") 这个等价于作用域
    • @Value("山姆02")  * 相当于  

    3、作用域

    1. /**
    2. * @Component 等价于
    3. *
    4. */
    5. @Component
    6. // @Scope("prototype") 这个等价于作用域
    7. @Scope("prototype")
    8. public class User {
    9. /**
    10. * 相当于
    11. *
    12. *
    13. *
    14. */
    15. // @Value("山姆02")
    16. public String name;
    17. @Value("shanmu02")
    18. public void setName(String name) {
    19. this.name = name;
    20. }
    21. }

    小结

    xml与注解:

    • xml更加万能,适用于任何场合,维护简单方便

    • 注解不是自己的类使用不了,维护相对复杂

    xml与注解最佳实践:

    • xml用来管理bean

    • 注解只负责完成属性的注入

    • 我们在使用的过程中,需要注意一个问题:必须让注解生效,就需要开启注解的支持

    1. <context:annotation-config/>
    2. <context:component-scan base-package="com.gt"/>

  • 相关阅读:
    SPARKSQL3.0-PhysicalPlan物理阶段源码剖析
    postgresql简单sql
    绿色荧光素标记纤维素;FITC-Cellulose/Cellulose-Fluorescein
    基于ATmega16单片机和GPS的多用途定位仪设计
    Ajax--跨域与JSONP--案例-淘宝搜索
    mysql中使用json_arrayagg(),指定数组中元素排序
    第十四届蓝桥杯(web应用开发)模拟赛2期 -大学组
    反射【Java】
    Ubuntu终端指令
    基于JavaWeb的旅游景点介绍网站建设及优化
  • 原文地址:https://blog.csdn.net/qq_46423017/article/details/126640712