Spring快速入门_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));
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值