第一节 Spring的环境搭建
|
正在构建,扫一扫,敬请期待 |
和玩得来的人在一起玩才叫玩! 和玩不来的人在一起玩,那种感觉就像加班啊! 关注胖个人微信公众账号,希望对各位学生有所帮助! --胖先生 |
Spring框架,什么是Spring框架? Spring是IoC和AOP的容器框架, -->Tomcat[Servlet的容器]
什么是IoC?控制反转 --->> DI 依赖注入
1.控制
2.反转
3.把生命交给别人来维护 -->把JavaBean的类的生命周期交给Spring的容器框架来维护
作者: Rob Johson
什么是AOP? 面向切面编程
面向过程编程 -->面对对象编程【面向切面编程-】->在不改变原来的代码的基础上,增加新的功能】-->面向服务编程SOA[普元]
Spring是一个开源框架,FULL-STACK(全栈)框架 WEB 持久化层 事务 定时 【NodeJS/Python/RxJava】,一站式服务
MyBatis是一个开源框架 ORM框架和持久层框架
领域模型[DOMAIN]: 贯穿于控制层/业务逻辑层/数据访问层[持久化层],用来承载数据的模型【实体Bean|持久化类】 百度|Google: domain pojo bo vo po 关系图
----------------------------------------------------------------------
Spring的环境搭建
- 引入20个Jar包
- 获取方式
|
<!-- 1.使用属性ID进行获取,保持唯一 推荐--> <!-- 相当于 User user1 = new User(); --> <bean id="user1" class="com.shxt.model.User"/> <!-- 2.通过name命名可以任意命名,不用遵循规则,不推荐使用 --> <!-- 相当于 User 123shxt = new User(); #user=123shxt --> <bean name="#user,123shxt" class="com.shxt.model.User"/> <!-- 3.没有使用name和id,就需要使用全路径,不推荐 --> <!-- 相当于 User com.shxt.model.User = new User() --> <bean class="com.shxt.model.User"/> |
//获取方式有两种形式 //推荐 |
- 注意关于注释
不允许使用
连续的 -- - 加载核心配置文件的方式
- BeanFactory factory = new ClassPathXmlApplicationContext("beans.xml");这个是心脏
- ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");组成了人
- 关于<bean> 标签的scope的属性
默认值是什么?有什么特点 prototype怎么使用?有什么特点? - 关于注入方式说明[重中之重]
- setter注入方式
<!-- 为类中对应的set方法后的首字母小写 -->
<!-- 如果有空格出现,那么会保留 -->
<!-- 如何处理特殊字符: & & < < > > " " ' &qust;
1.第一种方式: 转义2.第二种方式:<![CDATA[悟空&齐天大圣]]>
-->
<!-- 如何复制NULL有两种方式,推荐使用<null/>标签 -->
<!-- 变量的时候如果要生成get和set方法,那么该变量前两个字母一定为两个小写 -->
|
<bean id="user1" class="com.shxt.model.User" > <!-- 为类中对应的setter方法的首字母小写 --> <property name="account"> <value>wukong</value> </property> <!-- <property name="user_name" > <value>悟空齐&天大圣</value> </property> --> <property name="user_name"> <value><![CDATA[悟空&齐天大圣]]></value> </property> <!-- 不推荐方式 <property name="shxt"> <value>null</value> </property> --> <property name="shxt"><null/></property> </bean> |
- 构造函数的注入方式
|
<bean id="user1" class="com.shxt.model.User" > <!-- 类型方式 --> <!-- <constructor-arg type="int"> <value>500</value> </constructor-arg> <constructor-arg type="java.lang.String" value="悟空"/> --> <!-- 索引方式: <constructor-arg index="0" value="悟空"/> <constructor-arg index="1" value="wukong"/> --> <!-- 如果使用构造函数方式,只是推荐混合模式 --> <constructor-arg index="0" type="java.lang.String" value="悟空"/> <constructor-arg index="1" type="java.lang.String" value="wukong"/> <constructor-arg index="2" type="double" value="5000"/> </bean> |
|
package com.shxt.model; import java.io.Serializable; // --> 构造函数测试类 public class User implements Serializable { private String user_name; private String account; private int num; private double price; public User() { System.out.println("对User进行实例化"); } public User(String user_name, String account, double price) { System.out.println("&&&&&&&&&&&&&&"); this.user_name = user_name; this.account = account; this.price = price; } public User(String user_name, String account, int num) { System.out.println("88888888"); this.user_name = user_name; this.account = account; this.num = num; } public User(String user_name, int num) { System.out.println("User(String "+user_name+", int "+num+")"); this.user_name = user_name; this.num = num; } public User( int num,String user_name) { System.out.println("****"); this.user_name = user_name; this.num = num; } } |
- 静态工厂[不推荐使用]
- 在以后的学习当中,XML文件都会有如下的问题:
五个特殊的字符需要进行处理 & & < < > > " " ' &qust; - 使用Setter方式注入复杂的数据类型[没有包含对象方式或者接口方式]
|
package com.shxt.model; import java.util.List; import java.util.Map; import java.util.Properties; import java.util.Set; public class Person { private String name; private List<String> hobbys; private Set<Integer> nums; private Map<String, Object> maps; private Properties ps = new Properties(); public Person() { System.out.println("Person注入"); } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<String> getHobbys() { return hobbys; } public void setHobbys(List<String> hobbys) { this.hobbys = hobbys; } public Set<Integer> getNums() { return nums; } public void setNums(Set<Integer> nums) { this.nums = nums; } public Map<String, Object> getMaps() { return maps; } public void setMaps(Map<String, Object> maps) { this.maps = maps; } public Properties getPs() { return ps; } public void setPs(Properties ps) { this.ps = ps; } } |
|
<bean id="person" class="com.shxt.model.Person"> <property name="name" value="张三"/> <property name="hobbys"> <list> <value>篮球</value> <value>足球</value> </list> </property> <property name="nums"> <set> <value>100</value> <value>200</value> <value>100</value> </set> </property> <property name="maps"> <map> <entry key="shxt" value="四海兴唐"/> <entry key="xy37" value="祥云37"/> <entry key="xy37" value="悟空"/> </map> </property> <!-- 简单统一异常处理 --> <property name="ps"> <props> <prop key="url">数据路径</prop> <prop key="user_name">root</prop> </props> </property> </bean> |
第一节 Spring的环境搭建的更多相关文章
- Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置
原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...
- 最新版ssh hibernate spring struts2环境搭建
最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...
- Spring MVC 环境搭建(二)
在Spring MVC 环境搭建(一)中我们知道 spring 的配置是通过 urlmapping 映射到控制器,然后通过实现Controller接口的handlerequest方法转向页面. 但这存 ...
- Spring MVC 环境搭建(一)
一.建立 JavaWeb 项目 1.建立一个 Java 项目. 2.在项目下新建一个文件夹 webapp (命名可自取,这个目录即是网站根目录),再在该文件夹下新建一个 WEB-INF 文件夹(命名固 ...
- Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)
Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomc ...
- Spring开发环境搭建教程
Spring开发环境搭建 JDK7以上版本 eclispe for j2ee 4.0以上版本 Spring frameWorks 3.0以上版本 至于前两个我们就不介绍,直接百度就可以了,对于Spri ...
- Spring开发环境搭建(Eclipse)
开发环境搭建,主要包含2部分: Java安装 Eclipse安装 为易于学习,我们只安装这2个部分,对于一般开发学习也足够了.如果你有其他要安装的,酌情添加. Java安装 我们使用Java8: 下载 ...
- ES6第一节:开发环境的搭建
前言:由于目前浏览器对ES6的支持度不高,需要借助babel将编写好的ES6代码转换成ES5,浏览器才能解析. 需要在NodeJS环境下运行 一. 建立结构:两个文件夹和一个html文件,分别是src ...
- 1 IDEA 安装 及 IDEA开发 spring的环境搭建
摘要: 主要讲解使用 IDEA 开发 Spring MVC 的环境搭建,Maven的简单教学. 参考1:https://my.oschina.net/gaussik/blog/385697 参考2:h ...
随机推荐
- dokuwiki 配置 sendmail 邮件发送
dokuwiki 发送邮件有2种方式: 一是直接使用 PHP 自带发送功能,需要配置 PHP.ini 文件, 我没试过,可参考官网 https://www.dokuwiki.org/tips:mail ...
- 物理机通过http访问eNSP虚拟Server
由于测试需要,本文主要通过一个简单的例子介绍通过物理机的浏览器访问华为eNSP虚拟Server,访问网页. 1.首先配置虚拟网卡的地址 2.通过华为的eNSP模拟软件,做出如下拓扑结构图,配置地址如图 ...
- VMware在Centos7上配置静态IP的方法
使用NAT模式 在这里记下192.168.161.2 进入系统,为系统自动分配一个ip 记录下 192.168.161.129 进入网络管理器配置文件目录 cd /etc/sysconfig/netw ...
- 深度学习目标检测综述推荐之 Xiaogang Wang ISBA 2015
一.INTRODUCTION部分 (1)先根据时间轴讲了历史 (2)常见的基础模型 (3)讲了深度学习的优势 那就是feature learning,而不用人工划分的feature engineeri ...
- webug4.0安装
官网:https://www.webug.org/ 官方版本里安装视频教程 4.26 官网打不开,分享当初存在网盘的 链接:https://pan.baidu.com/s/13rG0TLwuA3Ro0 ...
- SimpleDateFormat的一些常用用法
/** SimpleDateFormat函数语法: G 年代标志符 y 年 M 月 d 日 h 时 在上午或下午 (1~12) H 时 在一天中 (0~23) m 分 s 秒 S 毫秒 E 星期 D ...
- 【Beta阶段】第三次Scrum Meeting!
每日任务内容: 本次会议为第三次Scrum Meeting会议~ 由于本次会议项目经理召开时间依旧较晚(晚上12点半),所以在公寓7层召开,女生参与了线上会议,召开时间大家集会10分钟. 队员 昨日完 ...
- 20135202闫佳歆--week4 课本第5章学习笔记
第五章 系统调用 一.与内核通信 系统调用在用户控件进程和硬件设备之间添加了一个中间层,作用如下" 为用户空间提供了一种硬件的抽象接口 系统调用保证了系统的稳定和安全 每个进程都运行在虚拟系 ...
- 常用校验码(奇偶校验码、海明校验码、CRC校验码)
一.奇偶校验码 二.海明校验码 三.CRC校验码 计算机系统运行时,各个部之间要进行数据交换.交换的过程中,会有发生误码的可能(即0变成1或1变成0),由于计算机的储存是通过二进制代码来实现的的, ...
- linq to sql中的自动缓存(对象跟踪)
linq to sql中,对于同一个DataContext上下文环境,根据表主键选择记录时(当然这里所指的“记录”会自动转成“对象”),如果该记录已经被select过,默认情况下会被自动缓存下来,下次 ...
