Spring实践系列-入门篇(一)

本文主要介绍了在本地搭建并运行一个Spring应用,演示了Spring依赖注入的特性


1 环境搭建

1.1 Maven依赖

目前只用到依赖注入的功能,故以下三个包已满足使用。

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <spring.version>5.0.7.RELEASE</spring.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
    </dependencies>

1.2 Spring相关配置

在resources目录新建spring-config.xml文件,主要内容如下:

    <!--配置包扫描路径-->
    <context:component-scan base-package="com.study"></context:component-scan>

    <!--启用注解-->
    <context:annotation-config></context:annotation-config>

1.3 主要代码

只展示ProductServiceImpl.java和APP.java文件,其他工程代码放到了GitHub上。

package com.study.service.impl;

import com.study.service.ProductService;
import org.springframework.stereotype.Service;

/**
 * @author frankwin608
 * @create 2018-07-09 23:56
 * @desc 商品服务实现类
 **/
@Service
public class ProductServiceImpl implements ProductService{

    @Override
    public String queryProductNameById(String id) {
        return "Hello Kitty";
    }
}
public class App {
    public static void main(String[] args) {
        ApplicationContext context = new ClassPathXmlApplicationContext(new String[]{"spring-config.xml"});
        ProductService productService = (ProductService) context.getBean("productServiceImpl");
        String productname = productService.queryProductNameById("23333");
        System.out.println("productname = " + productname);
    }
}

2 运行结果

3 总结分析

(1)通过context:annotation-config开启支持注解模式
(2)通过context:component-scan设置扫描,base-package指定了扫描的包路径
(3)在ProductServiceImpl类中将该类注解为@Service,该注解将该类标记为一个bean,交由Spring容器进行管理
(4)在App类中,通过读取配置文件并通过上下文的getBean方法获得productServiceImpl的实例,最后调用相应的方法获得结果。
(5)通过引入Spring的自动注入(实例化)的功能减少了自己手动new对象(具体好处参考Spring依赖注入的好处),

4 相关代码下载

Spring实践系列-入门篇(一)GitHub地址

posted @ 2018-07-10 01:57  来自海上的鱼  阅读(506)  评论(0编辑  收藏  举报