spring_01概念及案例

 

1.什么是IOC?  

  IOC概念:inverse of Controll,控制反转,所谓控制反转,就是把创建对象和维护对象关系的权利从程序中转移到spring的容器中(applicationContext.xml),而程序本身不再维护

 

2.什么是di?

  dependency injection,依赖注入,di和IOC是一个概念,spring的设计者认为di等更能准确表达spring

 

3.学习框架,最主要的就是学习各个配置

 

4.spring层次图 

  

 

5.初次相遇spring,我的看法:

  刚刚接触spring,素问spring是一个非常强大的框架,现在一看果然,他能够创建并管理几乎所有的bean对象,这里的bean对象包括:domain,dao,javabean,service...

  它就像是一个工程师,协调各个框架(springMVC,struts,hibernate......),注入灵魂,从而创建出一个个伟大的项目,

 

6.搭建spring项目简单步骤:

  1),导入jar包,spring.jar(这个包包含spring框架常用的包),common-logging.jar为日志包,前面两个包为必须,其余包按照需求选择导入

  

  2),在src目录下建立文件applicationContext.xml,一般都是在这个目录下配置,,并且名字为applicationContext.xml,部分开发人员也喜欢使用beans.xml这个名字

  3),根据项目需要创建相关的类,并且配置到配置文件applicationContext.xml文件中,配置到配置文件中的类必须满足javabean类的规格

 

7.简单案例,对比使用传统方法和使用spring框架输出"hello,爱华顿g":

  

package com.ahd.service;public class UserService {private String username;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public void sayHello(){System.out.println("hello "+username);}
}
Service类UserService类:

 

  src目录下建立applicationContext.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"xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsdhttp://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsdhttp://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd"><!-- 在容器文件中配置数据源(bean/entity/service/dao/pojo) --><!-- bean元素的作用是当spring框架加载的时候,spring会自动为bean类 UserService类的属性设置值  id就是创建对象的对象名 --><bean id="userService" class="com.ahd.service.UserService">
<!—name对应java类中的属性,value是赋值--!><property name="username"><value>爱华顿g</value></property></bean>
</beans>

 

  测试类Test

package com.ahd.test;import static org.junit.Assert.*;import com.ahd.service.UserService;public class Test {@org.junit.Testpublic void test() {//不使用spring框架,使用传统编程方法//1.创建对象UserService userService=new UserService();//2.设置属性userService.setUsername("爱华顿g");//3.调用方法
        userService.sayHello();}@org.junit.Testpublic void test1(){//使用spring来完成上面的流程//1.得到spring的容器对象ApplicationContextApplicationContext ac=new ClassPathXmlApplicationContext("applicationContext.xml");//2.获取bean对象UserService us=(UserService) ac.getBean("userService");//3.调用方法us.sayHello();}
}

 

  结果截图:

  

 

转载于:https://www.cnblogs.com/aihuadung/p/10356252.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/569805.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

斐波那契数列(二)--矩阵优化算法

之前写了一篇从斐波那契数列分析递归与动态规划&#xff08;JAVA&#xff09;来优化斐波那契数列&#xff0c;这样可以使算法的时间复杂度从O(n^2)变到O(n),这是使用递归公式f(n)f(n-1)f(n-2)求斐波那契数列的最优算法&#xff0c;但是这只是一维世界下的极限。下面我们将其从一…

第六届省赛(软件类)真题----Java大学B组答案及解析

第六届省赛&#xff08;软件类&#xff09;真题----Java大学B组答案及解析三角形面积立方变自身三羊献瑞循环节长度九数组分数加法变乘法牌型种数饮料换购垒骰子生命之树 一、三角形面积如【图1】所示。图中的所有小方格面积都是1。那么&#xff0c;图中的三角形面积应该是多少…

【学习总结】GirlsInAI ML-diary day-11-while循环

【学习总结】GirlsInAI ML-diary 总 原博github链接-day11 认识while循环执行 对于while/break/continue的认识 新值替换变量 一般while语句 无限循环 & break continue 作业 1-更新变量 这一条没什么新的东西&#xff0c;别的语言也一样&#xff1a;python在赋值时&#x…

第六届省赛(软件类)真题----Java大学A组答案及解析

第六届省赛&#xff08;软件类&#xff09;真题----Java大学A组答案及解析熊怪吃核桃星系炸弹九数分三组循环节长度打印菱形加法变乘法牌型种数移动距离垒骰子灾后重建一、熊怪吃核桃森林里有一只熊怪&#xff0c;很爱吃核桃。不过它有个习惯&#xff0c;每次都把找到的核桃分成…

@PathVariable、@RequestParam、@RequestBody注解

讲解更加详细的参考资料 https://blog.csdn.net/u011410529/article/details/66974974 https://www.cnblogs.com/soul-wonder/p/8920553.html PathVariable注解的作用&#xff0c;获取请求地址中传递的参数&#xff0c;即&#xff1a;从URL模版中取值。 RequestParam 是从reque…

从背包问题优化详解动态规划思想

动态规划&#xff1a; 所有的数据结构与算法的理解必须建立在题目的练习上&#xff0c;否则看多少理论都没有实际用处&#xff01;&#xff01;&#xff01;所以下面这些理论文字看不懂通通没关系&#xff0c;跟随下面的背包问题还会跟深入的理解。一、基本概念&#xff1a;任何…

js判断数组里是否有重复元素的方法

转&#xff1a; js判断数组里是否有重复元素的方法 https://blog.csdn.net/longzhoufeng/article/details/78840974第一种方法&#xff1a;但是下面的这种方法数字字符串类似相同&#xff0c;返回的还是真&#xff0c;有点不靠谱&#xff0c;如果是其它的字符是可以的 var ary1…

深入浅出讲算法思想--蛮力法思想分析及应用

蛮力法&#xff08;brute force method&#xff0c;也称为穷举法或枚举法&#xff09;是一种简单直接地解决问题的方法&#xff0c;常常直接基于问题的描述&#xff0c;所以&#xff0c;蛮力法也是最容易应用的方法。虽然&#xff0c;用蛮力法设计的算法时间特性往往也是最低的…

光耦在短距离通信中的应用

在高低压隔离系统设计中&#xff0c;难免会使用光耦来通信。在选择光耦器件时&#xff0c;需要考虑光耦允许的最大通信速率&#xff0c;否则在高速通信时会失败. 对于高速的光耦应用时&#xff0c;需要注意电流传输比率和开关速度。 参考文档《Basic Characteristics and Appli…

减治法解决八枚硬币问题/假币问题(JAVA)----二分,三分,不知轻重的情况

八枚硬币问题 在八枚外观相同的硬币中&#xff0c;有一枚是假币&#xff0c;并且已知假币与真币的重量不同&#xff0c;但不知道假币与真币相比较轻还是较重。可以通过一架天平来任意比较两组硬币&#xff0c;设计一个高效的算法来检测出这枚假币。 我们先假设一个条件&#xf…

减治法在查找算法中的应用(JAVA)--折半查找

减治法在查找算法中的应用 折半查找&#xff1a;(时间复杂度O(log以2为底n的对数)) 对于有序数组的查找来说&#xff0c;折半查找是一种非常高效的算法&#xff0c;其基本原理为&#xff1a;比较查找键k和数组中间元素a[m]&#xff0c;如果相等&#xff0c;算法结束&#xff…

牛客寒假算法基础集训营2 A处女座的签到题

处女座的签到题 链接&#xff1a;https://ac.nowcoder.com/acm/contest/327/A 题目描述 平面上有n个点&#xff0c;问&#xff1a;平面上所有三角形面积第k大的三角形的面积是多少?输入描述: 第一行T&#xff0c;表示样例的个数。对于每一组样例&#xff0c;第一行两个整数n和…

减治法解决约瑟夫斯问题(JAVA)

减治法在查找算法中的应用问题背景&#xff1a;据说著名犹太历史学家 Josephus有过以下的故事&#xff1a;在罗马人占领乔塔帕特后&#xff0c;39 个犹太人与Josephus及他的朋友躲到一个洞中&#xff0c;39个犹太人决定宁愿死也不要被敌人抓到&#xff0c;于是决定了一个自杀方…

从NetCore报错到MySql安全

从NetCore报错到MySql安全 原文:从NetCore报错到MySql安全之前项目在测试服务器上的一些接口时不时会报出下面的错误&#xff1a;&#xff08;采用Abp框架&#xff09; "SocketException: 你的主机中的软件中止了一个已建立的连接。 STACK TRACE: at MySqlConnector.Pr…

减治法在查找算法中的应用(JAVA)--快速查找

减治法在查找算法中的应用 快速查找&#xff1a;选择问题是求一个n个数列表的第k个最小元素的问题&#xff0c;这个数k被称为顺序统计量。对于k1或kn来说&#xff0c;这并没有什么意义&#xff0c;我们通常会要找出这样的元素&#xff1a;该元素比列表中一半元素大&#xff0…

JavaScript中使用Json

转载于:https://www.cnblogs.com/lyonwu/p/10368989.html

减治法在查找算法中的应用(JAVA)--二叉查找树的查找、插入、删除

减治法在查找算法中的应用二叉查找树的查找与插入&#xff1a; 二叉排序树或者是一棵空树&#xff0c;或者是具有下列性质的二叉树&#xff1a;&#xff08;1&#xff09;若左子树不空&#xff0c;则左子树上所有结点的值均小于或等于它的根节点的值&#xff1b; &#xff08;…

Navicat Premium试用期破解方法(转)

转载网址https://blog.csdn.net/Jason_Julie/article/details/82864187 1、按步骤安装Navicat Premium&#xff0c;如果没有可以去官网下载&#xff1a;http://www.navicat.com.cn/download/navicat-premium 2、安装好后下载激活文件&#xff1a;https://pan.baidu.com/s/1kVgT…

减治法在排序算法中的应用(JAVA)--插入排序

一、减治法在排序算法中的应用 插入排序&#xff1a;时间复杂度O(n^2)&#xff0c;虽然和选择、冒泡在最坏的情况下时间复杂度相同&#xff0c;但是插排平均性能在比自身的最差性能快一倍&#xff0c;所以相比选择、冒泡来说&#xff0c;插排要领先于二者。 public class Main…

减治法在求解拓扑排序问题中的应用(JAVA)--有向无环图

减治法在求解拓扑排序问题中的应用 拓扑排序&#xff1a;对于一个有向无环图来说&#xff0c;如果我们能够按照次序列出顶点&#xff0c;使得对于每条边来说&#xff0c;边的起始顶点总是排在边的结束顶点之前&#xff0c;那么这个过程就称为拓扑排序&#xff0c;拓扑排序有解…