AI智能
改变未来

Spring-02 第一个Spring程序


Spring-02 第一个Spring程序

第一个Spring程序

1.导入依赖

<dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>5.1.10.RELEASE</version></dependency>

2.创建实体类

public class Spring {private String name;public String getName() {return name;}public void setName(String name) {this.name = name;}public void show(){System.out.println( name );}}

3.创建配置文件

创建Spring配置文件,命名为:

applicationContext.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\"><!--bean就是java对象 , 由Spring创建和管理--><bean id=\"Spring\" class=\"pojo.Spring\"><property name=\"name\" value=\"Spring\"/></bean></beans>

4.测试

public claad8ss SpringTest {@Testpublic void FirstSpring(){ApplicationContext context = new ClassPathXmlApplicationContext(\"applicationContext.xml\");Spring spring = (Spring) context.getBean(\"Spring\");spring.show();}}

思考:

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

这个过程就叫控制反转 :

  • 控制 : 谁来控制对象的创建 , 传统应用程序的对象是由程序本身控制创建的 , 使用Spring后 , 对象是由Spring来创建的
  • 反转 : 程序本身不创建对象 , 而变成被动的接收对象 .

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

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

Spring案例

接着本博客

Spring-01

文章中的案例,进行Spring配置。

1.创建配置文件

使用Spring来创建对象,在spring中这些都被称为Bean

类型 变量名 = new 类型(); 例如:Hello hello = new Hello();

id = 变量名

class = new 的对象

property = 相当于给对象的数性设置一个值

name = name并不是属性 , 而是set方法后面的那部分 , 首字母小写

ref = 引用spring中创建好的对象 ,引用另一个bean的id

value = 基本数据类型

<?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\"><bean id=\"MysqlImpl\" class=\"Dao.Sql.UserDaoMySqlImpl\"/><bean id=\"OracleImpl\" class=\"Dao.Sql.UserDaoOracleImpl\"/><bean id=\"ServiceImpl\" class=\"Service.UserServiceImpl\"><property name=\"userDao\" ref=\"OracleImpl\"/></bean></beans>

2.测试

@Testpublic void Spring(){ApplicationContext context = new ClassPathXmlApplicationContext(\"bean.xml\");UserServiceImpl serviceImpl = (UserServiceImpl) context.getBean(\"ServiceImpl\");serviceImpl.getUser();}

本次引用的是

OracleImpl

,结果为:

不用再程序中去改动了 , 要实现不同的操作 , 只需要在xml配置文件中进行修改,所谓的IoC,就是对象由Spring 来创建 , 管理 , 装配 !

IOC创建对象方式

1.无参构造方法

1.1 构建实体类

public class User {private String name;public User() {System.out.println(\"user无参构造方法\");}public void setName(String name) {this.name = name;}public void show(){System.out.println(\"name=\"+ name );}}

1.2 创建配置文件

<?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/beanshttp://www.springframework.org/schema/beans/spring-beans.xsd\"><bean id=\"user\" class=\"pojo.User\"><property name=\"name\" value=\"ZC\"/></bean></beans>

1.3 测试

@Testpublic void test(){ApplicationContext context = new ClassPathXmlApplicationContext(\"bean.xml\");User user = (User) context.getBean(\"user\");user.show();}

2.有参构造方法

2.1 构建实体类

public class UserT {private String name;public UserT(String name) {this.name = name;}public void setName(String name) {this.name = name;}public void show(){System.out.println(\"name=\"+ name );}}

2.2 构建配置文件

bean.xml

有三种方式编写

第一种:根据index参数下标设置

<bean id=\"userT\" class=\"pojo.UserT\"><!-- index指构造方法 , 下标从0开始 --><constructor-arg index=\"0\" value=\"ZC2\"/></bean>

第二种:根据参数名字设置

<bean id=\"userT\" class=\"pojo.UserT\"><!-- name指参数名 --><constructor-arg name=\"name\" value=\"ZC2\"/></bean>

第三种:根据参数类型设置

<bean id=\"usead8rT\" class=\"pojo.UserT\"><constructor-arg type=\"java.lang.String\" value=\"ZC2\"/></bean>

2.3 测试

@Testpublic void test1(){ApplicationContext context = new ClassPathXmlApplicationContext(\"bean.xml\");UserT usert = (UserT) context.getBean(\"userT1\");usert.show();}

在配置文件加载的时候,其中管理的

所有对象

都已经初始化了,所以会出现User类的无参方法。

Spring配置

1.别名

别名 : 如果添加了别名,我们也可以使用别名获取到这个对象

<alias name=\"User\" alias=\"u1\"></alias>

2.Bean的配置

id 是bean的标识符,要唯一;

如果没有配置id,name就是默认标识符

如果配置id,又配置了name,那么name是别名

name可以设置多个别名,可以用逗号,分号,空格隔开

<bean id=\"hello\" name=\"hello2 h2,h3;h4\" class=\"pojo.Hello\"><property name=\"name\" value=\"Spring\"/></bean>

如果不配置id和name,可以根据applicationContext.getBean(.class)获取对象;

class是bean的全限定名=包名+类名

UserT usert =  context.getBean(UserT.class);

3.import

import

可以将不同的bean.xml引入到一个配置文件中。

<import resource=\"{path}/beans.xml\"/>

个人博客为:
MoYu\’s Github Blog
MoYu\’s Gitee Blog

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Spring-02 第一个Spring程序