SpringBoot之用户操作相关代码(暂时没有添加数据库)
SpringBoot项目中可以运行HelloBoot,咱们继续加入一些内容,针对用户进行增删改查操作;
eclipse中创建一个空白的SpringBoot项目,并在pom.xml中添加web信息,之后项目的基本结构如下图:
现在我们在项目中添加entity类User,添加web处理类,添加测试类
添加完毕后,项目结构如下:
备注:1.src/main/java 创建包com....
Eclipse中.properties文件中文显示编码问题
1.设置eclipse工作空间的编码 window->preference->general->workspace->text file encoding (左下角)->other->utf-8
2.设置之前项目的编码 项目名称单击右键->properties->resource->test file encoding->oth...
框架的低侵入如何理解?
低侵入,高侵入的主要区别是:想要去除此框架或者模块时,代码的改动大小
低侵入:去除此框架后,只需要修改一些配置信息,即可,反之,即是高侵入
举个例子:
低侵入:如果一个web项目用了低侵入的A框架,有一天,需求方要求技术更新,放弃使用A框架,要使用B框架,程序猿们只需要把与A框架相关的配置信息注释或者删除,把B框架加入。
高侵入:如果一个web项目用了高侵入的C框架,有一天,需求方要求技术...
JAVA面向接口的编程思想与具体实现
开发中定义的那么多接口,到底有啥用?
面向对象设计里有一点大家已基本形成共识,就是面向接口编程,我想大多数人对这个是没有什么觉得需要怀疑的。问题是在实际的项目开发中我们是怎么体现的呢? 难道就是每一个实现都提供一个接口就了事了?反过来说,你有时候有没有觉得接口是多余的事? 又或者,你仅仅是觉得现在类似spring这样的框架已习惯用接口这种方式而心存当然。
设计模式解...
自己动手写SpringMVC(一)
看了很久的源码,为了能更深刻的理解,自己动手定义一个属于自己的简单SpringMVC;此示例没有考虑任何持久层的内容。
客户端发来请求 http://ip:port/项目名称/类路径/方法路径
根据ip和port可以唯一确定是哪个服务器
项目名称可以唯一确定是哪个项目
类路径可以唯一确定是哪个处理类
方法路径可以唯一确定是哪个方法
如果客户端浏览器访问:http://192..16...
自己动手写SpringMVC(二)
估计看了上篇博文,大家都已经开始查看DispatcherServlet的源码,今天我们先不看源码,直接根据DispatcherServlet实现的功能;
现在开始分析DispatcherServlet需要实现什么功能?
SpringMVC里最好用的地方,应该是注解吧,因此我们需要完成如下任务:
任务一:把项目中所有的bean扫描,进行维护;
任务二:根据全类名创建bean实...
自己动手写SpringMVC(三)
此篇我们开始写DispacherServlet之前先好一个包含query方法的Controller,以及Controller里调用的Service接口,以及此接口的实现类:
首先代码结构图如下:
1.Controller 中实现代码如下:
@Controller
@RequestMapping("/student")
public class StudentController {
...
自己动手写SpringMVC(四)
本文将主要实现DispatcherServlet!
之前已经分析过DispatcherServlet主要的任务,分为五个任务,我们从任务一开始开始实现!
任务1:把项目中所有的bean扫描,进行维护;
实现代码如下:
private void scanPackage(String basePackage){
URL url = this.getClass().getClassLoad...
自己动手写SpringMVC(五)
已经分析过DispatcherServlet主要的任务,分为五个任务,任务1:把项目中所有的bean扫描,进行维护,我们已经完成,现在第二个任务:根据全类名创建bean实例,并进行维护;
其实写到这里就要恶补一下反射的相关知识了:
1.如何通过类的信息,获得这个类的类类型
Class<?> c1 = Class.forName("com.tx.Foo");
2.知道一个类的...
自己动手写SpringMVC(六)
已经分析过DispatcherServlet主要的任务,分为五个任务,任务一:把项目中所有的bean扫描,进行维护,任务二:根据全类名创建bean实例,并进行维护;本篇文章来实现任务三,任务四;
任务三:根据bean进行依赖注入;
//把service注入到控制层
public void doIoc(){
if(beans.entrySet().size()<=0){
S...
线程并发工具类-CountDownLatch与CyclicBarrier区别
首先抛个概念:
CountDownLatch:一个线程等待其他线程完成工作以后再执行,相当于加强版的join,初始化的时候,给定一个数值,通过调用countDown()方法,对这个数值进行减一操作,通过调用await()方法,让当前线程等待,直到数值减到0的时候,所有await的线程开始运行。
例子:视频会议,开视频会议的人有10个人,是否开始视频会议,决定条件是:人员是否到期,换句话就是没有...
自己动手写SpringMVC(七)
最后一个任务:任务五:实现doGet() doPost()方法;代码中调用了hand()方法,基本原理和以前的差不多,因此不做详细说明!
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this....
ConcurrentHashMap实现原理及源码分析(转载)
ConcurrentHashMap实现原理及源码分析
ConcurrentHashMap是Java并发包中提供的一个线程安全且高效的HashMap实现(若对HashMap的实现原理还不甚了解,可参考我的另一篇文章HashMap实现原理及源码分析),ConcurrentHashMap在并发编程的场景中使用频率非常之高,本文就来分析下ConcurrentHashMap的实现原理,并对其实现原理进...
构造方法参数过多该如何解决?-建造者模式
在编码的过程中,不可避免的遇到一个类有很多的成员变量,为了代码的健壮性,大家挖空心思地写各种构造方法,构造方法写到郁闷,貌似还没有全部包含,这个时候推荐大家用建造者模式!以下为具体的实现代码:
public class Goods {
private final String goodsId;
private final String goodsName;
private final S...
Tomcat8源码在Eclipse中调试(一)-源码编译,及在Eclipse中启动
最近想要走读下Tomcat8的源码,因此做一下记录;
1.下载Tomcat8,下载路径http://tomcat.apache.org/download-80.cgi 下载tomcat8.0.53
2.将下载好的压缩包,解压 以下是我的路径 E:\apache-tomcat-8.0.53-src
3.下载ant 对源码进行编译 【编译的目的是编译出tomcat源码运行时需要...
Maven搭建SSM框架(eclipse)
1.新建Maven工程,需要注意的是:在Archetype上,选择Artifact Id为maven-archetype-webapp的那项。
2.在Build Path里添加Tomcat的JAR包支持。成功之后的工程项目结构如图所示:
3.此时可以开始添加Spring,SpringMVC,Mybatis,MySQL,Druid,Log4j等支持。pom.xml依赖...
idea上用jetty启动web项目
公司旧的项目原来是eclipse本地启动,考虑到使用习惯,工作效率等原因,故想将项目迁移到idea上面。
一开始,部署出现许多奇怪的问题,包括原来eclipse上面的jetty的版本太旧只有6.1.26,官网只能下载到9版本的包,许多地方下载都需要分数,极其不友好。。。。。经过几番努力,终于找到了旧的包,部署情况如下:
1.本地解压好jetty的压缩包,通过如图的配置完成:
2.部署具体的项...
今日推荐
周排行