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

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

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

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

--胖先生

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. vue-cli 3.0 实现A-Z字母滑动选择城市列表

    项目地址: https://github.com/caochangkui/vue-cli3 项目代码: 城市列表首页: City.vue <template> <div id=&qu ...

  2. 一、Django前后端交互之Ajax和跨域问题

    一.Ajax介绍 1.概述 AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Jav ...

  3. GPT & UEFI Install Windows7

    安装介质以FAT或者FAT32分区安装介质添加UEFI支持文件(Windows7及其以前的系统,不支持UEFI启动) 从Windows8的安装文件中提取Bootmgfw.efi文件,重命名为BOOTX ...

  4. 粒子群算法(PSO)算法解析(简略版)

    粒子群算法(PSO) 1.粒子群算法(PSO)是一种基于群体的随机优化技术: 初始化为一组随机解,通过迭代搜寻最优解. PSO算法流程如图所示(此图是从PPT做好,复制过来的,有些模糊) 2.PSO模 ...

  5. leetcode刷题笔记172 阶乘后的零

    题目描述: 给定一个整数 n,返回 n! 结果尾数中零的数量. 示例1: 输入: 输出: 解释: ! = , 尾数中没有零. 示例2: 输入: 输出: 解释: ! = , 尾数中有 个零. 说明: 你 ...

  6. python3【基础】-赋值与深浅拷贝

    一.Python的变量及其存储 在高级语言中,变量是对内存及其地址的抽象.对于python而言,python的一切变量都是对象,变量的存储,采用了引用语义的方式,存储的只是一个变量的值所在的内存地址, ...

  7. PHP学习笔记1

    1.什么是PHP? Hypertext Preprocessor(超文本预处理语言). 是脚本语言. 是最流行的网站开发语言. 2.PHP能做什么? 可以生成动态页面内容. 可以创建.打开.读取.写入 ...

  8. About The Algorithm Simplification

    For mode 1, you have to ergod all the data in the files. So the key point to solve this problem is t ...

  9. No.1110_第十一次团队会议

    今天项目进展很多,第一轮迭代基本已经完成了,但是产品还没有发布,主要是因为大家还是太困了,所以再等一等明天再发布吧. 现在队员们急需补觉,因为最近实在是太辛苦了,很多人都没有休息好.现在已经基本完成了 ...

  10. oracle (+) 什么意思

    oracle中的(+)是一种特殊的用法,(+)表示外连接,并且总是放在非主表的一方. 例如左外连接:select A.a,B.a from A LEFT JOIN B ON A.b=B.b;等价于se ...