后台框架是真难入门啊!!!IDE的使用,环境的搭建,框架下载,上手,每一步都恶心人。

  花了整整两天,才学会用idea,并且初步了解了maven(TM就是一个npm),然后跟着下载了对应的jar包,搭建了一个简单的servlet。

  

  这里暂时记录一下遇到的坑。

  首先,为什么放弃Myeclipse?这个IDE只能下破解版的,界面是真的丑,下载的那些主题也特别僵硬。最重要的是,由于版本太低,只能用低版本的jdk,经常报一个version 51***的error,只能把jdk调到1,6,对应maven、spring都要调低版本,麻烦的很。

  后来就尝试换了idea,好在上手还算快,但是也有几个巨坑:

1、idea中的project对应Myeclipse中的workspace,而module才是project,所以在新建一个project的时候,一定要在Project location再添加一个文件夹

2、新建maven项目需要选准了

3、pom.xml中的依赖版本一定要注意jdk兼容问题!!!!

4、记得将java文件目录设置为资源根目录,右键文件夹:

5、如果maven中配置了对应框架的依赖还是报错:could not resolve symbol...直接File - Invalidate Cache,重启就好了

  目前,我只是写了个超级简单的servlet,目录如图:

  基本上都是IDE帮我弄好了文件夹,那个s是新建的,里面的Servlet.java是写的一个servlet类。web.xml中的mapping需要自己配置,IDE不会管的。

  到现在还是没明白怎么开始用Spring,官网是很全,但是我暂时没找到像HelloWorld之类的萌新入门案例。

  总之一句话,写代码真是件简单的事。

Two hours later...

  绝望的我已经开始搜索这个:

  好在还真有超级超级简单的案例,根据案例,创建一个弱智类HelloWorld:

    package s;public class HelloWorld{private String message;private String name;public void setName(String name) { this.name = name; }public void setMessage(String message){ this.message  = message; }public void getMessage(){ System.out.println("Your Message : " + message); }public void printName(){ System.out.print("Name : " + name); }}

  然后在同一个包下创建了另外一个厉害类:

    package s;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class MainApp {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");HelloWorld obj = (HelloWorld) context.getBean("helloWorld");obj.getMessage();obj.printName();}}

  这两个类联系起来需要靠一个xml的配置文件,就像servlet类将servlet处理文件与web请求联系起来一样,这里新建一个beans.xml关联两个java类;

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="helloWorld" class="s.HelloWorld"><property name="message" value="Hello World!"/><property name="name" value="春妹子"/></bean>
</beans>

  (xml文件的开头竟然不支持缩进)

  最后运行那个MainApp,结果如图:

  由于配置比较简单,所以可以很简单粗暴的去理解:

1、id作为一个标识符去让getBean方法进行获取对应的类

2、class是一个路径的完整映射,类似于servlet配置中的<servlet-class>

3、而property是实例化类后传入的变量,name、value对应key与value

  我是这样理解的,配置了beans.xml后,所有bean中的class映射的类都将在初始化时被实例化并保存在某个特殊的地方,保存方式类似于Map,其实中key就是那个id。

  可以通过context.getBean()方法获取,传入id可以得到对应的实例,返回的大概是一个Object类型,所以需要进行强制类型转换。

  之后,我对代码做了少许调整:

    package s;public class HelloWorld{private String name;private int uid;public void setName(String name) { this.name = name; }public void printName(){System.out.println("Name : " + name + uid + "号");uid++;}}

  在类中加入了一个计数器,然后主函数代码修改如下:

    public class MainApp {public static void main(String[] args) {ApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");ApplicationContext context2 = new ClassPathXmlApplicationContext("Beans.xml");HelloWorld obj = (HelloWorld) context.getBean("helloWorld");HelloWorld obj2 = (HelloWorld) context2.getBean("helloWorld");HelloWorld obj3 = (HelloWorld) context.getBean("helloWorld");obj.printName();    // Name : 春妹子0号obj.printName();    // Name : 春妹子1号obj2.printName();   // Name : 春妹子0号obj3.printName();   // Name : 春妹子2号
        }}

  通过输出可以判定这样的事实:

1、每一个context保存的类都是唯一的,可以简单理解成单例

2、可以通过再次调用new Class***来获取一个新的容器,并重新生成所有对应类

  

  所以这就是传说中的注入吗?nice,nice,我也是了解spring框架的人了!

转载于:https://www.cnblogs.com/QH-Jimmy/p/7832934.html

Spring学习之路-从入门到放弃相关推荐

  1. 跳过php学thinkphp,PHP学习-ThinkPHP《从入门到放弃》(六)

    此次学习主要遇到的问题,502问题: 1.在PHPStorm中试图修改PHP解释器的路径(项目下边External Libraries/偏好设置中的-Language & framework- ...

  2. 码农之路从入门到放弃之:计算机基础知识

    从入门到放弃 计算机基础知识 计算机概述 计算机组成部分 1.硬件部分: 2.软件部分 操作系统(OperatingSystem) 1.windows 简介 1.1.windows--优点 1.2.w ...

  3. python学习之路 - 从入门到精通到大师

    欢迎关注WX公众号:[程序员管小亮] 文章目录 欢迎关注WX公众号:[程序员管小亮] 0.前言 1.资源推荐 2.应用领域和就业形势分析 3.python系列文章 4.python基础教程 5.< ...

  4. 如何学习嵌入式? 嵌入式之路从入门到放弃....

    什么是嵌入式? 嵌入式分为广义和狭义两种.广义的嵌入式就是片上系统(system on a chip),包括单片机.PSOC.NIOS.Microblaze等.而狭义的嵌入式就是ARM9.cortex ...

  5. Spring学习之路

    1.Spring 前言 本文是根据狂神Spring整理而成,仅供学习交流使用,侵删. 1.1.简介 Spring:春天--------->软件行业的春天 2002,首次推出了Spring的雏形: ...

  6. Day8学习日记CSS从入门到放弃

    CSS CSS入门 如何学习 CSS是什么 CSS怎么用(快速入门) CSS选择器(重点+难点) 美化网页(文字,阴影,超链接,列表,渐变) 盒子模型 浮动 定位 网页动画(特效) 什么是CSS Ca ...

  7. Python学习笔记 之 从入门到放弃

    笔记目录 9月22日:<基础教程>基础知识 ·模块导入 ·用变量引用函数(或者Python中大多数的对象) ·将数值转换成字符串的方法:str类型.repr函数 9月23日:列表.元组 · ...

  8. python复数的实部和虚部都是整数嘛_Python学习笔记:从入门到放弃(2)基本语法...

    这次主要就记录一下Python中的基本语法,有标识符,注释,行与缩进,print函数输出以及数字类型和字符串 标志符: 第一个字符必须是字母表中字母或下划线 _ . 标识符的其他的部分由字母.数字和下 ...

  9. python中复数的实部和虚部都是浮点数_Python学习笔记:从入门到放弃(2)基本语法...

    这次主要就记录一下Python中的基本语法,有标识符,注释,行与缩进,print函数输出以及数字类型和字符串 标志符: 第一个字符必须是字母表中字母或下划线 _ . 标识符的其他的部分由字母.数字和下 ...

最新文章

  1. 程序文档的重要性理解
  2. 11.3/11.4/11.5 MySQL安装
  3. 部署LAMP-WordPress站点上线
  4. TypeScript 里的 module 概念
  5. Auto Lisp 标注子样式_CSS 核心样式
  6. 苹果再因“降频门”遭遇集体诉讼,11.5万用户出拳
  7. cad2016中选择全图字体怎么操作_给几十页PPT换字体,我同事居然花了半个小时?明明3秒就能搞定...
  8. 通过APKIDE 反编译文件得到.java文件方法
  9. 使用N2N软件远程管理DLAP221设备
  10. 最新章节 第138章 量子生物计算机,生生不息的世界
  11. 计算机桌面录屏,电脑桌面录屏软件有哪些可以推荐?
  12. 国家信息安全水平考试NISP考试经验分享
  13. DiskGenius清除磁盘分区空闲空间后磁盘爆满解决方法
  14. 全网超详细!用户画像标签体系建设指南!
  15. xftp和xshell有什么区别
  16. 火狐浏览器保存书签不在书签工具栏显示
  17. [数论 斐波那契] 51nod1355. 斐波那契的最小公倍数
  18. Master指令,Control指令,Register指令,PreviousPageType指令,MasterType指令
  19. 解决com.netflix.client.ClientException: Load balancer does not have available server for client:XXXXX(
  20. windows下安装libxml2

热门文章

  1. CodeForces 444C. DZY Loves Physics(枚举+水题)
  2. java ArrayList源码分析(转载)
  3. 前缀转后缀(表达式)
  4. React Native中一些常用组件用法
  5. ES6——函数的name属性
  6. HIT Software Construction Review Notes (chapter three)
  7. Web存储—sessionStorage存储
  8. HTML+CSS制作Windows启动加载动画
  9. 银行理财收益复利还是单利?
  10. 现在每月五千块钱的收入,相当于七八十年代的多少钱?