zoukankan      html  css  js  c++  java
  • 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地址

  • 相关阅读:
    C++优化和计算速度(碎碎念)
    架设一个p2p存储网络的问题(讨论)
    JAVA做敏感词统计——DFA 算法
    卸载Postman,用IntelliJ IDEA发起http请求
    LPC1788SDRAM调试
    ASP.NET网站大附件上传配置
    K2 Blackpearl中从数据库直接删除流程实例之K2Server表
    K2流程实例出错,切换到其他版本运行
    使用K2时提示未能加载文件或程序集Microsoft.IdentityModel等
    K2 Blackpearl中从数据库直接删除流程实例之K2ServerLog表
  • 原文地址:https://www.cnblogs.com/frankwin608/p/9284938.html
Copyright © 2011-2022 走看看