Spring4-1 Spring初始

本文介绍Spring框架的基本概念,包括其特点、模块及安装方法,并详细解释了IoC与DI的概念,最后通过一个示例展示了如何使用Spring进行开发。

  Spring是一个轻量级反转控制(IOC)和面向切面编程的开源的容器框架,其为简化企业级应用开发而生,即使用Spring可以使简单的JavaBean实现以前只有EJB才能实现的功能。


1. Spring框架

1.1 概述

  特点:框架、轻量级、反转控制、面向切面编程、容器、一站式,具体说明如下:

  • 框架: Spring使用简单的组件配置即可组合成一个复杂应用,可以使用XML或Java注解的方式来组合这些对象;
  • 轻量级: Spring是非侵入式的,即基于Spring开发的应用中的对象可以不依赖于Spring的API;
  • 反转控制: IoC,同依赖注入(Dependency Injection,简称DI);
  • 面向切面编程: Aspect Oriented Programming,简称AOP;
  • 容器: Spring包含且管理着应用对象的生命周期;
  • 一站式: 在IOC和AOP的基础上可以整合各种企业应用的开源框架和优秀的第三方类库(实际上Spring自身也提供了展现层的SpringMVC和持久层的Spring JDBC)。
1.2 Spring模块

这里写图片描述

1.3 插件安装

  Spring插件可使Spring程序的开发更为简单方便,因此需要在开发前安装插件到Eclipse中;在此,选择的安装文件为springsource-tool-suite-3.4.0.RELEASE-e4.3.1-updatesite.zip,安装时仅选择和Spring IDE相关的四个即可。


2. IoC和DI概述

  反转控制(Inversion of Control,简称IoC)的思想是反转资源获取的方向;传统的资源查找方式要求组件向容器发起请求,容器适时的返回资源;而IoC容器是主动地将资源推送给其所管理的组件,组件所要做的仅是选择一种合适的方式来接受资源,该行为也被称为查找的被动形式。
  依赖注入(Dependency Injection,简称DI)是IoC的另一种表述方式,即组件以一些预先定义好的方式(如setter方法)接受来自如容器的资源注入。

  IoC的前生——分离接口与实现:
这里写图片描述

  IoC的前生——采用工厂设计模式:
这里写图片描述 
  IoC的现在——采用反转控制:
这里写图片描述


3. 实现步骤

3.1 添加所依赖的jar包

这里写图片描述

3.2 添加Spring配置文件:

  一个典型的Spring项目需要创建一个或多个Bean配置文件,用于在Spring IOC容器里配置Bean;Bean的配置文件可以放在classpath下,也可以放在其它目录下。

<!-- src/helloWorld.xml -->
<?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">

    <bean id="helloWorld" class="com.qiaobc.spring.beans.HelloWorld">
        <property name="name" value="Android"></property>
    </bean>

</beans>
3.3 建立Spring项目

TestMain.java:

package com.qiaobc.spring.beans;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class TestMain {

    public static void main(String[] args) {
        /**
         * 使用spring框架实现方法调用
         *  1. 创建spring的IOC容器
         *  2. 从IOC容器中获取对应的JavaBean
         *  3. 调用方法
         * 
         * 反转控制(IOC)与依赖注入(DI):
         *  以往的资源获取方式是,组件向容器发起请求,容器查找资源并将其适时返回
         *  反转控制引入后,资源获取方式是,容器将资源推送给其所管理的组件,组件选择一种合适的方式来被动接收。
         * 
         */
        /**
         * 无框架实现步骤:
         * 实例化 -> 设置属性 -> 调用方法
         */
//      HelloWorld helloWorld = new HelloWorld();
//      helloWorld.setName("java");
//      helloWorld.sayHello();

        /**
         * 基于Spring框架实现
         */
        // 1. 创建Spring的IoC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("helloBean.xml");

        // 2. 从IoC容器中获取Bean
        HelloWorld helloWorld = (HelloWorld) ctx.getBean("helloWorld");

        // 3. 调用方法
        helloWorld.sayHello();
    }
}

HelloWorld.java:

package com.qiaobc.spring.beans;

public class HelloWorld {

    private String name;

    public void setName(String name) {
        this.name = name;
    }

    public void sayHello() {
        System.out.println("Hello:" + name);
    }
}
03-08
### MathPix工具介绍 Mathpix Snipping Tool 是一款强大的数学公式识别工具,从最初的原型发展至今已经历了多次迭代和功能增强[^1]。该工具不仅能处理简单的数学表达式,还可以应对复杂的数学模型以及多行公式,并且支持手写公式的识别。 这款应用程序通过不断的科技创新与用户反馈改进,在学术研究和技术领域赢得了良好声誉,成为许多科研人员不可或缺的工作伙伴之一。除了基本的功能外,Mathpix 还提供了多种高级特性来满足不同用户的特定需求。 ### 使用方法 #### 安装与启动 为了使用 Mathpix Snipping Tool ,首先需要下载安装程序并按照提示完成设置过程。一旦成功安装后即可随时调用此应用来进行截图操作。 #### 截取屏幕上的公式图像 当遇到想要转换成 LaTeX 或 AsciiMath 的图片时,只需打开软件界面按下快捷键(默认为 `Ctrl+Alt+M`),此时鼠标指针会变为十字形状以便于选取目标区域;框选所需部分之后松开按键即刻上传至云端服务器等待进一步分析处理。 #### 获取LaTeX代码片段 经过短暂几秒钟的时间延迟过后,所截获的内容将以纯文本形式显示出来供复制粘贴到其他编辑器当中继续编写文档或是分享给他人查看交流之用。 ```python import pyperclip # 假设已获取到LaTeX字符串 stored_in_variable named latex_code pyperclip.copy(latex_code) print("LaTeX code has been copied to clipboard.") ``` 对于希望深入探索更多可能性的用户来说,可以考虑查阅官方提供的扩展插件——如用于解析Markdown文件内的公式标记语法的库 **mathpix-markdown-it** [^2] ——这将进一步提升工作效率和个人体验感。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值