JavaGUI-坦克大战037.线程的应用017.1坦克子弹发射思路在坦克大战2.0基础上添加如下功能:当玩家按下j键,就发射一颗子弹。思路:当发射一颗子弹后,就等于启动了一个线程Hero类要有子弹的对象,当按下j键时,我们就启动一个发射行为(线程),让子弹不停地移动,形成一个设计的效果我们的MyPanel需要不停地重绘,才能出现该效果当子弹移动到面板边界时,就应该销毁(把启动的子弹的线程销毁)7.2我方发射子弹1.创建子弹类Shot:实现Runnable接口,创建线程,在run方法中用while循环不停地改变子弹坐标,实现子弹射出的效果packageli.TankGame.version03
Spring管理Bean-IOC1.Spring配置/管理bean介绍Bean管理包括两方面:创建bean对象给bean注入属性Bean的配置方式:基于xml文件配置方式基于注解配置方式2.基于XML配置bean2.1通过类型来获取bean通过id来获取bean在Spring基本介绍中已经使用过,这里不再赘叙案例说明:通过spring的ioc容器,获取一个bean对象(说明:获取bean的方式:按类型)完成步骤:创建一个Java对象Monster.java在beans.xml中配置Monster.java:packagecom.li.bean;/***@author李*@version1.0*
Spring管理Bean-IOC1.Spring配置/管理bean介绍Bean管理包括两方面:创建bean对象给bean注入属性Bean的配置方式:基于xml文件配置方式基于注解配置方式2.基于XML配置bean2.1通过类型来获取bean通过id来获取bean在Spring基本介绍中已经使用过,这里不再赘叙案例说明:通过spring的ioc容器,获取一个bean对象(说明:获取bean的方式:按类型)完成步骤:创建一个Java对象Monster.java在beans.xml中配置Monster.java:packagecom.li.bean;/***@author李*@version1.0*
Spring管理Bean-IOC-032.基于XML配置bean2.15bean的生命周期bean对象的创建是由JVM完成的,然后执行如下方法:执行构造器执行set相关方法调用bean的初始化方法(需要配置)使用bean当容器关闭时,调用bean的销毁方法(需要配置)例子House:packagecom.li.bean;/***@author李*@version1.0*/publicclassHouse{privateStringname;publicHouse(){System.out.println("House()构造器被执行...");}publicStringgetName(){re
Spring管理Bean-IOC-032.基于XML配置bean2.15bean的生命周期bean对象的创建是由JVM完成的,然后执行如下方法:执行构造器执行set相关方法调用bean的初始化方法(需要配置)使用bean当容器关闭时,调用bean的销毁方法(需要配置)例子House:packagecom.li.bean;/***@author李*@version1.0*/publicclassHouse{privateStringname;publicHouse(){System.out.println("House()构造器被执行...");}publicStringgetName(){re
1. 方法引用1.1. 一种引用方法的轻量级语法1.1.1. 提供了一种简短的语法1.1.2. 标准语法为Classname::methodName1.2. 凡是使用Lambda表达式的地方,就可以使用1.3. 自动支持多个参数1.3.1. 前提是选对了正确的函数接口2. 出现顺序2.1. 流是有序的2.1.1. 流中的元素都是按顺序处理的2.2. 依赖于数据源和对流的操作2.3. 在一个有序集合中创建一个流时,流中的元素就按出现顺序排列2.3.1. List2.4. 如果集合本身就是无序的,由此生成的流也是无序的2.4.1. HashSet2.5. 一些操作在有序的流上开销更大,调用unor
1. 方法引用1.1. 一种引用方法的轻量级语法1.1.1. 提供了一种简短的语法1.1.2. 标准语法为Classname::methodName1.2. 凡是使用Lambda表达式的地方,就可以使用1.3. 自动支持多个参数1.3.1. 前提是选对了正确的函数接口2. 出现顺序2.1. 流是有序的2.1.1. 流中的元素都是按顺序处理的2.2. 依赖于数据源和对流的操作2.3. 在一个有序集合中创建一个流时,流中的元素就按出现顺序排列2.3.1. List2.4. 如果集合本身就是无序的,由此生成的流也是无序的2.4.1. HashSet2.5. 一些操作在有序的流上开销更大,调用unor
实现Spring底层机制-037.阶段5-后置处理器的实现7.1分析阶段5目标:bean后置处理器的实现7.2代码实现新增:1.创建InitializingBean接口,实现该接口的Bean需要实现Bean的初始化方法bean后置处理器的两个方法,调用时机分别在Bean初始化方法的前后。因此要实现bean后置处理器,首先要实现Bean的初始化方法。可以参考原生Spring规范来定义这个接口packagecom.li.spring.processor;/***@author李*@version1.0*说明:*1.根据spring原生机制定义了一个接口*2.该接口有一个方法afterPropert
实现Spring底层机制-037.阶段5-后置处理器的实现7.1分析阶段5目标:bean后置处理器的实现7.2代码实现新增:1.创建InitializingBean接口,实现该接口的Bean需要实现Bean的初始化方法bean后置处理器的两个方法,调用时机分别在Bean初始化方法的前后。因此要实现bean后置处理器,首先要实现Bean的初始化方法。可以参考原生Spring规范来定义这个接口packagecom.li.spring.processor;/***@author李*@version1.0*说明:*1.根据spring原生机制定义了一个接口*2.该接口有一个方法afterPropert
模型数据1.数据放入request说明:开发中,控制器/处理器中获取的数据如何放入request域,然后在前端(vue/jsp/...)取出显示?先来看一个例子应用实例需求:表单提交信息,后端获取信息,并通过request转发到另一个页面,显示信息。需要知道的是:前端提交的数据,springmvc会自动地封装到java对象中,同时springmvc会自动地将其放入request域中,这样我们就可以在跳转的下一个页面取出数据。mode_date.jsp提交数据:model_data主人id:主人名:宠物id:宠物名:VoteHandler.java:springmvc会自动将数据封装到Javab