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 @   来自海上的鱼  阅读(515)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· .NET 8.0 + Linux 香橙派,实现高效的 IoT 数据采集与控制解决方案
· .NET中 泛型 + 依赖注入 的实现与应用
点击右上角即可分享
微信分享提示