当前位置: 首页 > 编程日记 > 正文

spring 框架学习(一)

1、spring简介

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。Spring的一个最大的目的就是使JAVA EE开发更加容易.
同时,Spring致力于提供一个以统一的、高效的方式构造整个应用,并且可以将单层框架以最佳的组合揉和在一起建立一个连贯的体系。可以说Spring是一个提供了更完善开发环境的一个框架,可以为POJO(Plain Old Java Object)对象提供企业级的服务.
Spring为简化企业级应用开发而生,使用Spring可以使简单的javaBean实现以前只有EJB才能实现的功能。
Spring框架描述
看了这张图片是不是觉得头大?这是spring框架的模块图。而真正学习spring框架,从特性方面入手比较好一些。

2、搭建spring开发环境

现在我们要着手搭建一个spring的开发环境,第一步,我们要找齐所需的jar包在这里插入图片描述
这里面包括了两个有关消息的jar包,4个spring功能jar包,如果你eclipse配置有maven插件,使用maven配置spring的开发环境会更加简单。

<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.3.RELEASE</version><relativePath /> <!-- lookup parent from repository --></parent><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
如果你有maven插件的话,将上面一段话引入pom.xml就完成了spring-boot的引入。接下来,还要配置spring的配置文件。 新建一个xml文件,将以下上下文引入,spring的开发环境就配置好了 ```xml <?xml version="1.0" encoding="UTF-8"?> ```

3.IOC(DI)

IOC全称Inversion of Control,就是控制反转,这是spring的基本思想之一。它的基本概念是控制权反转。之前我们创建对象同常通过关键字new运行构造方法来创建一个新对象,然而现在,我们要把创建对象这个过程交给spring的beanFactory来实现。 IBM中这样描述IOC:不创建对象,但是描述创建它们的方式。在代码中不直接与对象和服务连接,但在配置文件中描述哪一个组件需要哪一项服务。容器 (在 Spring 框架中是 IOC 容器) 负责将这些联系在一起。 下面我们需要来手写一个例子,在刚才新建的xml文件中,我们可以通过bean节点来配置实体bean.
<bean id="apple" class="com.zzxt.spring.ioc.Apple"></bean>
<bean id="Orange" class="com.zzxt.spring.ioc.Orange"></bean>
其中,bean属性的id在IOC容器中必须是唯一的,如果没有指定,spring将自动定性类名作为bean的名字。我们可将业务bean注入到IOC中,这样会使日后的更新变得方便。 注入之后,我们可以编写一个测试类看一看是否成功注入
package com.zzxt.spring.ioc;import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;import com.zzxt.spring.ioc.bean.Apple;public class TestIOC {private ApplicationContext ioc;@Beforepublic void initIoc() {ioc = new ClassPathXmlApplicationContext("applicationContext.xml");System.out.println("IOC 容器初始化完成!!!");}@Testpublic void testIoc() {Apple apple = ioc.getBean("apple", Apple.class);apple.tasted();}}

可以在实体bean Apple的tasted(吃)方法中写点内容,比如一句输出,看是否能执行,如果能执行,说明注入和之前的配置成功了。

相关文章:

Styling with the DataGridColumnStyle

详细讲解了如何自定义DataGrid控件&#xff0c;将多种控件&#xff08;如&#xff1a;进度条、按钮、下拉框&#xff09;绑定到数据列中 参考MSDNPart 1&#xff1a;http://msdn.microsoft.com/en-us/library/ms996449Part 2&#xff1a;http://msdn.microsoft.com/en-us/libra…

Excel常用公式记录

1.生成指定时间段内的日期&#xff1a; TEXT("2019/8/9 00:00"RAND()*54,"yyyy/mm/hh HH:MM") 注意&#xff1a;RAND()*54&#xff0c;54指从2019/8/9日起的54天&#xff0c;有时会有2019/8/00的错误格式 2.生成类似于“第一级”&#xff0c;“第二级”类似…

Delphi XE2 发布了,期待了很久的东西,开始学习中。

这个博客将记录我学习DELPHI XE2及开发相关应用程序的点点滴滴&#xff0c;因此该博客内容全部原创&#xff0c;我也不会转载和抄录别人的代码。为了让大家和我一同进步&#xff0c;所有示例都带源代码&#xff0c;你可以随时下载后进行调试运行。 Delphi--一个伴随我12年的开发…

基于libmad库的MP3解码简析

基于libmad库的MP3解码简析 MAD &#xff08;libmad&#xff09;是一个开源的高精度 MPEG 音频解码库&#xff0c;支持 MPEG-1&#xff08;Layer I, Layer II 和 LayerIII&#xff08;也就是 MP3&#xff09;。LIBMAD 提供 24-bit 的 PCM 输出&#xff0c;完全是定点计算&#…

oracle数据库增加新字段

--Add/modify columns alter table 表名 add 字段名 类型; --------------------------------------------------------------------- --Add comments to the columns comment on column CE00.eec000 is xxx;转载于:https://www.cnblogs.com/yby120/p/9138801.html

list @size 验证_第33期:上海自来水来自海上,回文字符串验证!

我准备了 1000 本电子书和计算机各领域高清思维导图 100 张&#xff0c;关注后回复【资源】&#xff0c;即可获取&#xff01;更可回复【内推】加入 BAT 内推群&#xff01;01、题目示例见微知著&#xff0c;发现一组数据很有趣&#xff0c;分享给大家。leetcode 第一题通过次数…

安装apache的时候80端口被PID为4的系统进程所占用

由于工作中需要直接从MySQL后台读取数据&#xff0c;所以安装了PHPnow&#xff0c;装的过程中提示Apache安装失败&#xff0c;80端口被占用。 在cmd中输入netstat –ano命令&#xff0c;发现80端口被一个PID为4的服务所占用&#xff0c;打开任务管理器&#xff0c;发现PID为4的…

PHP根据时间戳返回星期几

为什么80%的码农都做不了架构师&#xff1f;>>> <?php /*** 根据时间戳返回星期几* param string $time 时间戳* return 星期几*/ function weekday($time) {if(is_numeric($time)){$weekday array(星期日,星期一,星期二,星期三,星期四,星期五,星期六);return…

FastCGI与php-fpm

FastCGI&#xff1a;为了兼顾IIS下PHP的效率和安全&#xff0c;微软给出了FastCGI的解决方案。同ISAPI原理有些类似&#xff0c;就是减少CGI初始化等前置操作的消耗。FastCGI可以让PHP的进程重复利用而不是每一个新的请求就重开一个进程。同时FastCGI也可以允许几个进程同时执行…

postmaster.c 中的 ListenAddresses

在 postmaster.c 中看到这种代码&#xff0c;从Java程序员的角度&#xff0c;看起来是很不爽的: char *ListenAddresses; ...if (ListenAddresses){ char *rawstring; List *elemlist; ListCell *l; ... 到底何…

PHPCMS V9 杂记一

PHPCMS V9加载顺序 PHPCMS V9和V8相比&#xff0c;总体思路方向是一样&#xff0c;不同的是V9把OOP和MVC结合得更加完美。 打开根目录下面的index.php 三行代码&#xff0c;相比V8的 index.php来说 更加清楚&#xff0c; phpcms下面的base.php文件&#xff0c;是一个基础类&…

esp32 camera_利用Phyphox和ESP32蓝牙制作欧姆表测电阻

近日&#xff0c;微主在利用Phyphox和ESP32蓝牙研究热敏电阻的阻值与温度的关系时&#xff0c;需要绘制热敏电阻阻值与时间的关系图像&#xff0c;通过用手捏住或者放开热敏电阻&#xff0c;观察电阻与时间关系图像的变化情况&#xff0c;进而了解温度对热敏电阻的影响。将热敏…

linux tomcat集群配置笔记

趁最后一天假期,配置linux环境下的apache集群,巩固下,免的以后用到又忘记,网上东拼息凑,环境弄好后,整到blog,以便以后用到。 参考来源&#xff1a;http://www.linuxidc.com/Linux/2011-03/32859.htm 我用的版本&#xff1a; httpd-2.2.21.tar.gz apache-tomcat-6.0.32.tar.gz …

spring -- 自定义注解

我们直接通过代码解释自定义注解的使用及各个含义 package com.sysware.cloud.dts.annotation;import java.lang.annotation.*;Retention(RetentionPolicy.RUNTIME) Target({ElementType.METHOD}) Inherited Documented public interface DtTransactional {/** Whether need to…

angular 字符串转换成数字_蓝盟IT外包,Python算法的一般技术和嵌入式库|python|字符串|key|算法|调用...

近年来&#xff0c;随着python着火&#xff0c;python也开始受到很多程序员的喜爱。 很多程序员已经开始使用python作为第一语言。最近在python上刷问题时&#xff0c;我想去找python的刷问题常用库api和刷问题技术。 和c的STL库文档一样&#xff0c;但很遗憾没有找到。 因此&a…

Mapping Persistence Classes 笔记2---ValueType的形式和映射

2010年5月17日 简介&#xff1a; 前面的笔记着重讲解了实体类以及其class-mapping options&#xff0c;本章笔记将关注值类型的形式以及其OR映射选项。 值类型一般可分为两类&#xff1a;JDK类型和用户自定义类型。本章首先从实体类的使用JDK类型的properties开始&#xff0c;讲…

安装wampserver及配置php,phpmyadmin遇到的问题及解决方法

wampserver 安装好以后&#xff0c;打开&#xff0c;发现appache无法启动&#xff0c;查了一下&#xff0c;发现是前安装过iis&#xff0c;iis使用80端口&#xff0c;打开httpd.conf&#xff0c;把里面所有的80都改成了81&#xff0c;然后appache就可以正常启动了。 再配置wamp…

as一种模拟输入效果

这个小程序展现的是一种模拟输入的效果&#xff0c;比如你在键盘上随便输入什么&#xff0c;在屏幕上就会依次的显示“这句话不是我输入的&#xff0c;呵呵”。比较有意思。 var s:Sprite new Sprite; var t:TextField new TextField(); var i:Number0; var myText:String&qu…

signature验证/salt验证/token验证的作用

1.salt验证: salt是随机生成的一串字符,salt验证的作用是将生成的salt与加密的密码密文拼接后再次加密存储 这样可以是存储在数据库中的密码更加安全 2.signature验证: I、将token, timestamp, nonce, encrypt的内容按照大小字母顺序排列 II、按顺序将列表中排序号的内容拼接成…

算法导论课后习题解析 第四章 上

4.1-1 返回只包含绝对值最小的元素的子数组。 4.1-2 Maximun-Subarray(A)max -infinityfor i 1 to A.lengthsum 0for j i to A.lengthsum sum A[i]if sum > maxmax sumlow ihigh jreturn (low, high, max)每次内循环都利用上次累加的结果&#xff0c;避免重复运算…

win10商店打不开_科技资讯:Win10系统电脑的应用商店老是打不开还闪退怎么办

最近关于Win10系统电脑的应用商店老是打不开还闪退怎么办在网上的热度是非常高的&#xff0c;很多网友们也都是非常关注Win10系统电脑的应用商店老是打不开还闪退怎么办这个事情&#xff0c;为此小编也是在网上进行了一番搜索查阅相关的信息&#xff0c;那么如果说有感兴趣的网…

[原]tornado源码分析系列(三)[网络层 IOLoop类]

引言&#xff1a;由于都是在工作当中抽出时间看源代码&#xff0c;所以更新速度比较慢&#xff0c;但是还是希望通过对好的源码的分析和探讨&#xff0c;大家相互学习&#xff0c;发现不好的地方共同讨论。 上次讲了IOLoop中的几个重要的方法&#xff0c;inistance() 和 add_ha…

参悟JavaScript

引子 编程世界里只存在两种基本元素&#xff0c;一个是数据&#xff0c;一个是代码。编程世界就是在数据和代码千丝万缕的纠缠中呈现出无限的生机和活力。 数据天生就是文静的&#xff0c;总想保持自己固有的本色&#xff1b;而代码却天生活泼&#xff0c;总想改变这个世…

SQL数据库无法附加 系统表损坏修复 数据库中病毒解密恢复

SQL数据库无法附加 系统表损坏修复 数据库中病毒解密恢复 开发此工具是为了 让手工恢复数据库物理故障时 更加简单便捷直观, 本工具用于物理修复独立处理大部分问题以及与DBCC配合完成修复各种数据库错误.特别是针对大型数据库上百G 上TB数据库&#xff0c;节约大量时间精力。 …

ODP.NET调用存储需要使用事务

今天发生在用ODP.NET调整一个存储过程时发生了两个奇怪的错误。 ORA-08103: object no longer exists ora-01410: invalid rowid网上都说是索引块有错误什么的&#xff0c;我索引也重建&#xff0c;表也重建了&#xff0c;但还是不行。 奇怪的是我直接测试存储过程是有结果的。…

HDU-1698-Just a Hook

HDU-1698-Just a Hook http://acm.hdu.edu.cn/showproblem.php?pid1698 还是成段更新线段树 #include<stdio.h> #include<string.h> #include<stdlib.h> #define N 100005 struct cam {int x;int y;int sum;int val; }list[N*4]; void build(int k,int x,in…

sketchup 255个su常用插件)_SketchUp领域的知乎,有胆来问!

你知道知乎、豆瓣、果壳……但你可能不知道【问吧】这是一个 SketchUp 领域的知乎(点击文末“阅读原文”可直接进入【问吧】)你可以找到关于 SketchUp 的任何话题&#xff1a;SketchUp、Vray、建模、插件、曲面、SUAPP、组件、导入、材质、渲染、导出、贴图、材质、错误报告、L…

js简单的抽屉菜单

闲暇时间用Jquery写了一个js简单的抽屉菜单。。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns"http://www.w3.org/1999/xhtml" > <…

checkedListBox的使用

1.添加项checkedListBox1.Items.Add("蓝色"); checkedListBox1.Items.Add("红色"); checkedListBox1.Items.Add("黄色");2. 判断第i项是否选中,选中为true,否则为falseif&#xff08;checkedListBox1.GetItemChecked(i)&#xff09;{return t…

Windows Phone开发(39):漫谈关键帧动画上篇 转:http://blog.csdn.net/tcjiaan/article/details/7550506...

尽管前面介绍的几种动画会让觉得很好玩了&#xff0c;但是&#xff0c;不知道你是否发现&#xff0c;在前面说到的一系列XXXAnimation中&#xff0c;都有一个共同点&#xff0c;那就是仅仅针对两个值的目标值之间产生动画&#xff0c;如果使用By&#xff0c;将在原值和加上By后…