9、使用Java的方式配置Spring

我们现在要完全不使用Spring的xml配置了,全权交给Java来做!

JavaConfig是Spring的一个子项目,在Spring4之后,它成为了一个核心功能

实体类

  1. //这里这个注解的意思,就是说明这个类被Spring接管了,注册到了容器中
  2. @Component
  3. public class User {
  4. private String name;
  5. @Override
  6. public String toString() {
  7. return "User{" +
  8. "name='" + name + '\'' +
  9. '}';
  10. }
  11. public String getName() {
  12. return name;
  13. }
  14. @Value("尹锐")
  15. public void setName(String name) {
  16. this.name = name;
  17. }
  18. }

配置文件

  1. package com.rui.config;
  2. import com.rui.pojo.User;
  3. import org.springframework.context.annotation.Bean;
  4. import org.springframework.context.annotation.ComponentScan;
  5. import org.springframework.context.annotation.Configuration;
  6. import org.springframework.context.annotation.Import;
  7. //这个也会被Spring容器托管,注册到容器中,因为它自身就是一个@Component,
  8. // @Configuration代表这是一个配置类,就和我们之前看的beans.xml一样
  9. @Configuration
  10. @Import(RuiConfig2.class)
  11. public class RuiConfig {
  12. //注册一个bean,就相当于我们之前写的一个bean标签
  13. //这个方法的名字,就相当于bean标签中的ID属性
  14. //这个方法的返回值,就相当于bean标签中的class属性
  15. @Bean
  16. public User getUser(){
  17. return new User();//就是返回要注入到bean的对象
  18. }
  19. }

测试类

  1. public class MyTest {
  2. public static void main(String[] args) {
  3. //如果完全使用了配置类方式去做,我们就只能通过AnnotationConfig上下文来获取容器,通过配置类的class对象加载!
  4. ApplicationContext context = new AnnotationConfigApplicationContext(RuiConfig.class);
  5. User getUser = (User) context.getBean("getUser");
  6. System.out.println(getUser.getName());
  7. }
  8. }

这种纯Java的配置方式,在SpringBoot中随处可见!

10、代理模式

为什么要学习代理模式?因为这就是SpringAOP的底层【SpringAOP和SpringMVC】

代理模式的分类:

  • 静态代理
  • 动态代理

10.1、静态代理

角色分析:

  • 抽象角色:一般会使用接口或者抽象类来解决
  • 真实角色:被代理的角色
  • 代理角色:代理真实角色,代理真实角色后,我们一般会做一些附属操作
  • 客户:访问代理对象的人!

代码步骤:

  1. 接口

    1. //租房接口
    2. public interface Rent {
    3. public void rent();
    4. }
  2. 真实角色

    1. //房东
    2. public class Host implements Rent {
    3. @Override
    4. public void rent(){
    5. System.out.println("房东要出租房子!
    6. Spring-使用JAVA的方式配置Spring-代理模式的更多相关文章

        1. bean的自动装配,使用注解开发,使用java的方式配置Spring
        1. bean的自动装配 自动装配是Spring满足bean依赖一种方式! Spring会在上下文中自动寻找,并自动给bean装配属性! 在Spring中有三种装配的方式 在xml中显示的配置 在java中 ...

        1. Java方式配置Spring MVC
        1. 概述 使用Java方式配置Spring MVC,以及回顾一下Spring MVC的各种用法. Spring MVC简述 关于Spring MVC的介绍网上有很多,这里就不再赘述了,只是要说一下,Spr ...

        1. Java方式配置Spring
        1. 概述 本文主要讲的是如何使用Java Bean来配置Spring,而不是用xml来配置Spring. 本文主要是代码,需要注意的都在注释里面. 代码打包下载地址(注:项目使用Maven构建) Java ...

        1. 跟着刚哥学习Spring框架--通过XML方式配置Bean(三)
        1. Spring配置Bean有两种形式(XML和注解) 今天我们学习通过XML方式配置Bean 1. Bean的配置方式 通过全类名(反射)的方式   √ id:标识容器中的bean.id唯一. √ cl ...

        1. 跟着刚哥学习Spring框架--通过注解方式配置Bean(四)
        1. 组件扫描:Spring能够从classpath下自动扫描,侦测和实例化具有特定注解的组件. 特定组件包括: 1.@Component:基本注解,识别一个受Spring管理的组件 2.@Resposit ...

        1. Spring boot 基于注解方式配置datasource
        1. Spring boot 基于注解方式配置datasource 编辑 ​ Xml配置 我们先来回顾下,使用xml配置数据源. 步骤: 先加载数据库相关配置文件; 配置数据源; 配置sqlSessionF ...

        1. Java设计模式---(动态)代理模式
        1. 代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 之前虽然会用JDK的动态代理,但是有些问题却一直没有搞明白 ...

        1. Java设计模式系列之动态代理模式(转载)
        1. 代理设计模式 定义:为其他对象提供一种代理以控制对这个对象的访问. 动态代理使用 java动态代理机制以巧妙的方式实现了代理模式的设计理念. 代理模式示例代码 public interface Sub ...

        1. Java设计模式(10)代理模式(Proxy模式)
        1. 理解并使用设计模式,能够培养我们良好的面向对象编程习惯,同时在实际应用中,可以如鱼得水,享受游刃有余的乐趣. Proxy是比较有用途的一种模式,而且变种较多,应用场合覆盖从小结构到整个系统的大结构,P ...

      1. 随机推荐

          1. go timer定时器 WaitGroup用法
          1. 参考文章: timer定时器: https://www.cnblogs.com/oxspirt/p/7107312.html WaitGroup用法: https://studygolang.com/ ...

          1. vue组件中的驼峰命名和短横线命名
          1. 参考链接:https://www.jianshu.com/p/f12872fc7bfb

          1. Asp.Net文件的上传和下载
          1. aspx页面: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="上传和下载文件. ...

          1. HTML札记
          1. HTML 指的是 超文本标记语言 (Hyper Text Markup Language) 文档后缀名: 当您保存 HTML 文件时,既可以使用 .htm 也可以使用 .html 扩展名.两者没有区别 ...

          1. C++ algorithm算法库
          1. C++ algorithm算法库 Xun 标准模板库(STL)中定义了很多的常用算法,这些算法主要定义在<algorithm>中.编程时,只需要在文件中加入#include<algo ...

          1. preg_replace
          1. preg_replace  执行一个正则表达式的搜索和替换 说明: preg_replace ( mixed $pattern , mixed $replacement , mixed $subje ...

          1. hdu 6182
          1. A Math Problem Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)To ...

          1. .htaccess SAE AppConfig
          1. 新浪的SAE不支持 htaccess,但是他们开发了 AppConfig,可以完全代替 htaccess 的常见功能,AppConfig采用类自然语言的规则描述,还是很人性化的. 这里来写一个短网址的 ...

          1. ASP.NET WEB应用程序(.network4.5MVC Razor视图引擎2 视图模板页
          1. https://www.cnblogs.com/xlhblogs/archive/2013/06/09/3129449.html MVC Razor模板引擎 @RenderBody.@RenderPa ...

          1. 题解 P3378 【【模板】堆】
          1. Update 18.2.27----想当年我还用着C..... 看到题解里一堆用C++ STL库中的优先队列,身为C语言选手心里不是滋味 故手打一个优先队列献给坚守在C语言的选手 #include & ...