正在构建,扫一扫,敬请期待

和玩得来的人在一起玩才叫玩!

和玩不来的人在一起玩,那种感觉就像加班啊!

关注胖个人微信公众账号,希望对各位学生有所帮助!

--胖先生

Spring框架,什么是Spring框架? Spring是IoCAOP容器框架, -->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"/>

//获取方式有两种形式
User u1 =
(User) factory.getBean("123shxt");

//推荐
User u2 =
factory.getBean("com.shxt.model.User", User.class);

  • 注意关于注释
    不允许使用
    连续的 --
  • 加载核心配置文件的方式
    • BeanFactory factory = new ClassPathXmlApplicationContext("beans.xml");这个是心脏
    • ApplicationContext ac = new ClassPathXmlApplicationContext("beans.xml");组成了人
  • 关于<bean> 标签的scope的属性
    默认值是什么?有什么特点 prototype怎么使用?有什么特点?
  • 关于注入方式说明[重中之重]
    • setter注入方式

      <!-- 为类中对应的set方法后的首字母小写 -->
      <!-- 如果有空格出现,那么会保留 -->
      <!-- 如何处理特殊字符: & &amp; < &lt; > &gt; " &quot; ' &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>悟空齐&amp;天大圣</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文件都会有如下的问题:
    五个特殊的字符需要进行处理 & &amp; < &lt; > &gt; " &quot; ' &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的环境搭建的更多相关文章

  1. Ionic 入门与实战之第二章第一节:Ionic 环境搭建之开发环境配置

    原文发表于我的技术博客 本文是「Ionic 入门与实战」系列连载的第二章第一节,主要对 Ionic 的开发环境配置做了简要的介绍,本文介绍的开发环境为 Mac 系统,Windows 系统基本类似,少许 ...

  2. 最新版ssh hibernate spring struts2环境搭建

    最新版ssh hibernate spring struts2环境搭建 最新版spring Framework下载地址:spring4.0.0RELEASE环境搭建 http://repo.sprin ...

  3. Spring MVC 环境搭建(二)

    在Spring MVC 环境搭建(一)中我们知道 spring 的配置是通过 urlmapping 映射到控制器,然后通过实现Controller接口的handlerequest方法转向页面. 但这存 ...

  4. Spring MVC 环境搭建(一)

    一.建立 JavaWeb 项目 1.建立一个 Java 项目. 2.在项目下新建一个文件夹 webapp (命名可自取,这个目录即是网站根目录),再在该文件夹下新建一个 WEB-INF 文件夹(命名固 ...

  5. Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker)

    Spring MVC 环境搭建(maven+SpringMVC+mybatis+Freemarker) 一.准备工作 1.Eclipse Java EE IDE(4.4.1) 2.JDK 3.Tomc ...

  6. Spring开发环境搭建教程

    Spring开发环境搭建 JDK7以上版本 eclispe for j2ee 4.0以上版本 Spring frameWorks 3.0以上版本 至于前两个我们就不介绍,直接百度就可以了,对于Spri ...

  7. Spring开发环境搭建(Eclipse)

    开发环境搭建,主要包含2部分: Java安装 Eclipse安装 为易于学习,我们只安装这2个部分,对于一般开发学习也足够了.如果你有其他要安装的,酌情添加. Java安装 我们使用Java8: 下载 ...

  8. ES6第一节:开发环境的搭建

    前言:由于目前浏览器对ES6的支持度不高,需要借助babel将编写好的ES6代码转换成ES5,浏览器才能解析. 需要在NodeJS环境下运行 一. 建立结构:两个文件夹和一个html文件,分别是src ...

  9. 1 IDEA 安装 及 IDEA开发 spring的环境搭建

    摘要: 主要讲解使用 IDEA 开发 Spring MVC 的环境搭建,Maven的简单教学. 参考1:https://my.oschina.net/gaussik/blog/385697 参考2:h ...

随机推荐

  1. Spring+SpringMVC+MyBatis+easyUI整合优化篇(一)Java语言中System.out.print与Log的比较

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. 前言 距离上一次更新博客有一段时间了,主要是因为最近有开发任务,另外 ...

  2. 【转载】SSD断电保护原理

    异常掉电的隐患 若没有合理的掉电保护机制,而异常掉电的发生又不可避免,当发生异常掉电,会引发很多问题. (1)丢盘 异常掉电,会使得映射表来不及保存,丢失逻辑地址到物理地址的映射,待重新上电后,SSD ...

  3. mgo like的两种写法

    实际上都是围绕正则来写的,看大家喜欢那种写法 package main import ( "fmt" "labix.org/v2/mgo" "labi ...

  4. Java serialVersionUID作用和生成

    序列化和反序列化Java是面向对象的语言,与其他语言进行交互(比如与前端js进行http通信),需要把对象转化成一种通用的格式比如json(前端显然不认识Java对象),从对象到json字符串的转换, ...

  5. PAT甲题题解-1037. Magic Coupon (25)-贪心,水

    题目说了那么多,就是给你两个序列,分别选取元素进行一对一相乘,求得到的最大乘积. 将两个序列的正和负数分开,排个序,然后分别将正1和正2前面的相乘,负1和负2前面的相乘,累加和即可. #include ...

  6. C. Classy Numbers

    链接 [http://codeforces.com/contest/1036/problem/C] 题意 给你l,r,让你找在这个闭区间内位数不为0不超过3的个数,1<=l,r<=1e18 ...

  7. Notes of Daily Scrum Meeting(12.18)

    前期落下的进度我们会在周六周日赶一下,在编译课程设计中期测试之后集中处理项目中的问题. 今天的任务总结如下: 团队成员 今日团队工作 陈少杰 调试后端连接的部分,寻找bug 王迪 测试搜索功能,修改b ...

  8. 12.15daily_scrum

    新的阶段工作已经开始,本阶段我们小组的工作重心在于界面的优化和资源配置的整合,让用户产生更好的体验效果,有一些更加直观和便捷的应用功能展示,加以相应的辅助功能让新版本的笔记本软件更具竞争力和可用性. ...

  9. Linux内核实验作业六

    实验作业:分析Linux内核创建一个新进程的过程 20135313吴子怡.北京电子科技学院 [第一部分]阅读理解task_struct数据结构 1.进程是计算机中已运行程序的实体.在面向线程设计的系统 ...

  10. 20135316王剑桥Linux内核学习笔记

    王剑桥Linux内核学习笔记 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 计算机是如何工作的 个人理 ...