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

Spring快速入门_01

程序员文章站 2022-03-05 23:17:01
...

Spring快速入门_01

spring简介:Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,它是为了解决企业应用开发
的复杂性而创建的。Spring 的核心是控制反转(IoC)和面向切面编程(AOP)。Spring 是可
以在 Java SE/EE 中使用的轻量级开源框架。
spring的优点:轻量、针对接口编程,解耦合、aop编程的支持、方便集成各种框架
实现步骤:

1.创建Maven项目

2.加入相关的依赖

spring的依赖

 <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>5.3.4</version>
    </dependency>

Junit依赖

	<dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

3.创建类(接口和它的实现类)和没有使用框架一样,就是普通的类

SomeService

package com.sqgxy.service;

public interface SomeService {
    void doSome() ;
}

SomeServiceImpl

package com.sqgxy.service;


public class SomeServiceImpl implements SomeService{
    @Override
    public void doSome() {
        System.out.println("执行了someservice");
    }
}

4.创建spring需要使用的配置文件,声明类的信息,这些类有spring创建和管理

<?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创建对象
    声明bean:告诉spring要创建某个类的对象
    id:对象的自定义名称,唯一值,spring通过这个名称找到对象
    class:类的全限定名称,不能是接口,因为spring是通过反射机制创建对象,必须使用类
    spring就完成 SomeService someService=new SomeServiceImpl();
    spring是把创建好的对象放到map中,spring框架有一个map存放对象
        springMap.put(id的值,对象);
        例如 springMap.put("someService",new SomeServiceImpl());
    一个bean标签声明一个Java对象。
-->
    <bean id="someService" class="com.sqgxy.service.SomeServiceImpl"/>
    <bean id="someService1" class="com.sqgxy.service.SomeServiceImpl"/>
<!--创建一个存在的某个类的对象-->
    <bean id="myDate" class="java.util.Date">
    </bean>
</beans>
<!--spring的配置文件
    beans:是根标签,spring把Java对象成为bean
    spring-beans.xsd 是约束文件,和mybatis中的dtd是一样的
-->

5.测试spring

package com.sqgxy;

import com.sqgxy.service.SomeService;
import com.sqgxy.service.SomeServiceImpl;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * @Author zhw
 * Version 1.0
 * @Description TODO
 * Date 2021/3/15 20:40
 **/
public class MyTest {
    @Test
    public void test01(){
        SomeService someService=new SomeServiceImpl();
        someService.doSome();
    }
    //spring默认创建对象的时间:在创建spring的容器时,会创建配置文件中的所有的对象
    //spring创建对象:默认调用的是无参数的构造方法
    @Test
    public void test02(){
        //使用spring容器创建的对象
        //指定spring配置文件的名称
        String config="beans.xml";
        //创建表示spring容器的对象,applicationContext
        //ApplicationContext就是表示spring容器,通过容器获取对象
        //ClassPathXmlApplicationContext:表示从类路径中加载spring的配置文件
        ApplicationContext ac=new ClassPathXmlApplicationContext(config);
        //获取对象 getBean(),spring中的ID值
        SomeService service = (SomeService) ac.getBean("someService");
        //使用spring创建好的对象
        service.doSome();
    }
    /*
    * 获取spring容器中Java对象的信息*/
    @Test
    public void test03(){
        String config="beans.xml";
        ApplicationContext ac=new ClassPathXmlApplicationContext(config);
        //使用spring提供的方法,获取容器中定义的对象的数量
        int nums = ac.getBeanDefinitionCount();
        System.out.println(nums);
        //容器中每个定义的对象的名称ID
        String[] names = ac.getBeanDefinitionNames();
        for (String name : names) {
            System.out.println(name);
        }
    }
    //获取一个非自定义的对象
    @Test
    public void test04(){
        String config="beans.xml";
        ApplicationContext ac=new ClassPathXmlApplicationContext(config);
        Date myDate=(Date)ac.getBean("myDate");
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy:MM:dd HH:mm:ss");
        System.out.println(sdf.format(myDate));
    }
}

相关标签: spring笔记 spring