Spring随笔

Spring5

Sping介绍

  • Spring是一个开源的免费的框架(容器)!

  • Spring是一个轻量级的、非入侵式的框架!

  • 控制反转(IOC),面向切面编程(AOP)!

  • 支持事务的处理,对框架整合的支持!

总结一句话:Spring就是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的框架!

使用注解开发

@Autowired

直接在属性上使用即可!也可以在set方法上使用!

使用Autowired我们就可以不用编写set方法了,前提是你这个自动配置的属性在IOC(Spring)容器中存在,且符合名字ByName!

小结:

@Resource和@Autowired的区别:

  1. 都是用来自动装配的,都可以放在属性字段上

  2. @Autowired通过byType的方式实现,而且必须要求这个对象存在!【常用】

  3. @Resource默认通过byName的方式实现,如果找不到名字,则通过byType实现!如果两个都找不到的情况下,就报错!【常用】

  4. 执行顺序不同:@Autowired通过byType的方式实现。

小结 xml与注解:

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

  2. 注解不是自己类使用不了,维护相队复杂! xml与注解最佳实践:

    1. xml用来管理bean;

    2. 注解只负责完成属性的注入;

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

使用Java的方式配置Spring(SpringBoot)

我们现在要完全不使用Spring的xml配置了,全权交给Java来做! JavaConfig是Spring的一个子项目,在Spring4之后,它成为了一个核心功能!

  1. 实体类

     

    //这里这个注解的意思,就是说明这个类被Spring接管了,注册到了容器中
    @Component
    public class User {
       private String name;
    public String getName() {
       return name;
    }

    @Value("黑心白莲") //属性注入值
    public void setName(String name) {
       this.name = name;
    }

    @Override
    public String toString() {
       return "User{" +
               "name='" + name + '\'' +
               '}';
    }
    }
  2. 配置文件

     

    // 这个也会Spring容器托管,注册到容器中,因为它本来就是一个@Component
    // @Configuration代表这是一个配置类,就和我们之前看的beans.xml
    @Configuration
    @ComponentScan("com.kuang.pojo")
    @Import(KuangConfig2.class)
    public class KuangConfig {
    // 注册一个bean,就相当于我们之前写的一个bean标签
    // 这个方法的名字,就相当于bean标签中id属性
    // 这个方法的返回值,就相当于bean标签中的class属性
    @Bean
    public User user(){
       return new User(); // 就是返回要注入到bean的对象!
      }
    }

     

  3. 测试类

    public class MyTest {
       public static void main(String[] args) {

           //如果完全使用了配置类方式去做,我们就只能通过 AnnotationConfig 上下文来获取容器,通过配置类的class对象加载!
           ApplicationContext context = new AnnotationConfigApplicationContext(KuangConfig.class);

           User user = context.getBean("user", User.class);
           System.out.println(user.getName());
      }
    }

     

  4.  

posted @ 2022-02-25 18:16  Hurricane#5250  阅读(34)  评论(0)    收藏  举报