欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

HelloSpring

程序员文章站 2022-07-15 10:23:52
...
1.HelloSpring

1.1编写一个Hello实体类

package com.ming.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class Hello {
    private String str;
}

1.2 编写我们的spring文件 , 这里我们命名为beans.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--      使用Spring来创建对象,在Spring这些都称为Bean
          类型 变量名 = new 类型();
          Hello hello=new Hello();
          id = 变量名
          class = new 的对象
          Property 相当于给对象中的属性设置一个值!
-->

    <bean id="oo" class="com.ming.pojo.Hello">
       <property name="str" value="hello,spring"/>
    </bean>
        </beans>

3、我们可以去进行测试了

@Test
public void test(){
   //解析beans.xml文件 , 生成管理相应的Bean对象
   ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
   //getBean : 参数即为spring配置文件中bean的id .
   Hello hello = (Hello) context.getBean("hello");
   hello.show();
}
思考
  • Hello 对象是谁创建的 ? 【hello 对象是由Spring创建的

  • Hello 对象的属性是怎么设置的 ? hello 对象的属性是由Spring容器设置的

这个过程就叫控制反转 :

  • 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的

  • 反转 : 程序本身不创建对象 , 而变成被动的接收对象 .

依赖注入 : 就是利用set方法来进行注入的.

IOC是一种编程思想,由主动的编程变成被动的接收

可以通过newClassPathXmlApplicationContext去浏览一下底层源码 .

修改案例一

    <bean id="UserDaoMysqlImp" class="com.ming.Dao.UserDaoMysqlImp"/>
    <bean id="UserDaoSqlImp" class="com.ming.Dao.UserDaoSqlImp"/>
    <!--注意: 这里的name并不是属性 , 而是set方法后面的那部分 , 首字母小写-->
    <!--引用另外一个bean , 不是用value 而是用 ref-->
    <bean id="UserServiceImp" class="com.ming.Service.UserServiceImp">
        <property name="userDao" ref="UserDaoMysqlImp"/>
    </bean>

测试!

 @Test
 public void Text02(){
     ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
     UserServiceImp userServiceImp = (UserServiceImp) context.getBean("UserServiceImp");
     userServiceImp.Transfer();
 }
`

IOC创建对象方式

  • beans.xml默认 通过无参构造方法来创建
  • beans.xml可以通过有参构造方法来给属性设置(三种方式编写)
<!-- 第一种根据index参数下标设置 -->
<bean id="user" class="com.mingo2.pojo.User">
   <!-- index指构造方法 , 下标从0开始 -->
   <constructor-arg index="0" value="kuangshen2"/>
</bean>

推荐使用

<!-- 第二种根据参数名字设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
   <!-- name指参数名 -->
   <constructor-arg name="name" value="kuangshen2"/>
</bean>
<!-- 第三种根据参数类型设置 -->
<bean id="userT" class="com.kuang.pojo.UserT">
   <constructor-arg type="java.lang.String" value="kuangshen2"/>
</bean>

结论:在配置文件加载的时候。其中管理的对象(无参构造)都已经初始化了!

2.Spring配置

2.1 别名

alias 设置别名 , 为bean设置别名 , 可以设置多个别名

<!--设置别名:在获取Bean的时候可以使用别名获取-->
<alias name="userT" alias="userNew"/>

2.2 Bean的配置

<!--bean就是java对象,由Spring创建和管理-->

<!--
   id 是bean的标识符,要唯一,如果没有配置id,name就是默认标识符
   如果配置id,又配置了name,那么name是别名
   name可以设置多个别名,可以用逗号,分号,空格隔开
   如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;

class是bean的全限定名=包名+类名
-->
<bean id="hello" name="hello2 h2,h3;h4" class="com.kuang.pojo.Hello">
   <property name="name" value="Spring"/>
</bean>

2.3 import
一般用于团队开发使用,它可以将多个配置文件,导入合并为一个。

  • applicationContext.xml
<import resource="beans.xml">
<import resource="beans2.xml">
<import resource="beans3.xml">
相关标签: Spring 5 spring 5

上一篇: spring 常用注解

下一篇: Spring5-02-IOC

推荐阅读