• spring简单入门示例


    1 控制反转IOC依赖注入DI,因为翻译的不同,因此有两个名字。

          控制反转意思就是说,当我们调用一个方法或者类时,不再有我们主动去创建这个类的对象,控制权交给别人(spring)。

      依赖注入意思就是说,spring主动创建被调用类的对象,然后把这个对象注入到我们自己的类中,使得我们可以使用它。

      

      举个简单的例子,程序猿加班了一个月,很累,想要放松下,于是去找人吃“麻辣烫”。

      不使用spring的传统做法是,我们自己通过陌陌微信等神器,主动寻找目标,花费大量人力物力,达成协议后,申请“场所”办正事。

      而使用spring的做法就很方便了,我们直接去某个场所,那个地方直接就有目标候着!

      这是多么神奇的功能啊!

    2 AOP面向切面编程

      我们把一个方法看做是一个切面,在这个切面的前后或者周围,都可以设置其他的处理方法,进行一些特殊的处理。

      比如一个“吃蛋糕”的方法,在这个方法前需要“拆包装”,方法后需要“打扫卫生”,都可以通过这种编程方式来实现。

      那么下面看下它的编码过程!

      1 首先我们需要一个bean,用某种方法(设置注入需要有setter函数,构造注入需要有构造函数,相应的bean.xml配置文件也会不同)设定注入方式。

      2 bean.xml,设置bean与类的关系,并关联默认的注入值。

      3 获取bean.xml文件,创建实例对象,直接调用方法。

      可以看到,我们开发的程序只有第三步的“创建实例对象,直接调用方法”,并没有为他进行初始化等工作,就可以直接调用它的方法,获取它的值。其实spring在程序初始化的时候,就会为我们把bean对应的对象注入进来,帮助我们完成初始化,因此我们只要通过一个引用对象,就可以直接调用了。

    最后我们写一个简单的依赖注入的小样例!

      1 需要的jar包和文件结构

      jar包下载地址:http://pan.baidu.com/s/1sjDbzrR

      

      2 bean.xml配置文件,放在src目录下

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     3     xmlns="http://www.springframework.org/schema/beans"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans
     5     http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
     6     <bean id="person" class="com.test.bean.Person">
     7         <property name="name" value="xingoo"/>
     8         <property name="age" value="12"/>
     9     </bean>
    10 </beans>

        3 Person类,这里使用的是set设置注入方式

     1 package com.test.bean;
     2 
     3 public class Person {
     4     
     5     private String name;
     6     private int age;
     7     
     8     public String getName() {
     9         return name;
    10     }
    11     public void setName(String name) {
    12         this.name = name;
    13     }
    14     public int getAge() {
    15         return age;
    16     }
    17     public void setAge(int age) {
    18         this.age = age;
    19     }
    20     public void info(){
    21         System.out.println("一起来吃麻辣烫!");
    22         System.out.println("name:"+getName()+" age:"+getAge());
    23     }
    24 }

    4 test类

     1 package testSpring;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 import com.test.bean.Person;
     7 
     8 public class test {
     9     public static void main(String[] args){
    10         ApplicationContext ctx = new ClassPathXmlApplicationContext("bean.xml");//读取bean.xml中的内容
    11         Person p = ctx.getBean("person",Person.class);//创建bean的引用对象
    12         p.info();
    13     }
    14 }

      5 执行结果

  • 相关阅读:
    docker知识3---镜像
    docker知识2---docker简介
    docker知识1---容器背景
    docker故障排查
    linux故障处理--ssh故障
    sqlalchemy的一行代码更新数据库
    Python内置函数和高阶函数(map,filter,reduce, sorted,enumerate, zip,单行条件语句 )
    Mysql略复杂命令总结
    pip的使用
    Linux的基础命令
  • 原文地址:https://www.cnblogs.com/UniqueColor/p/5690843.html
Copyright © 2020-2023  润新知