01.后台管理系统静态页面
导入静态资源展示后台首页1 功能分析请求的url:/参数:无返回值:逻辑视图String2 Controller/** * 页面跳转controller * */ @Controller public class PageController { @RequestMapping("/") public String showIndex() { return "index"; } ......
IDUtils.java
实现方案:
Uuid,字符串,不推荐使用。
数值类型,不重复。日期+时间+随机数20160402151333123123
可以直接去毫秒值+随机数。可以使用。
使用redis。Incr。推荐使用。
E3Result.java
请求的url:/item/save
参数:表单的数据。可以使用pojo接收表单的数据,要求pojo的属性和input的name属性要一致。
使用TbItem对象接收表单的数据。
TbItem item,String desc
JsonUtils.java
如果,返回值是String,就不需要转换了,浏览器直接可以识别String,默认的Content-Type=text/plain.
那我们返回值就直接用String,需要将map转成string。
FastDFSClient
我们访问的是nginx,FastDFS只是完成了图片保存的功能。我们访问的是nginx,FastDFS只是完成了图片保存的功能。我们访问的是nginx,FastDFS只是完成了图片保存的功能。我们访问的是nginx,FastDFS只是完成了图片保存的功能。
fastdfs_client.zip
这个jar包中央仓库里面没有。我们要把它放到私服或本地仓库。这个jar包中央仓库里面没有。我们要把它放到私服或本地仓库。这个jar包中央仓库里面没有。我们要把它放到私服或本地仓库。
jdk-7u71-linux-i586.tar.gz
注意:rpm与软件相关命令 相当于window下的软件助手 管理软件
步骤:
1)查看当前Linux系统是否已经安装java
输入 rpm -qa | grep java
VMware-workstation-full-9.0.0-812388
因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,所以我们要学习Linux就首先将我们电脑的Window系统换成Linux系统,或者在我们电脑上安装双系统,听上去是不是很可怕。其实我们可以在我们电脑上安装一个软件,这个软甲可以模拟一台或多台虚拟的电脑机器,这就是虚拟机
商城项目,商品的添加
请求的url:/item/save
参数:表单的数据。可以使用pojo接收表单的数据,要求pojo的属性和input的name属性要一致。
使用TbItem对象接收表单的数据。
TbItem item,String desc
商城商品列表展示的完整代码
、初始化表格请求的url:/item/list
2、Datagrid默认请求参数:
1、page:当前的页码,从1开始。
2、rows:每页显示的记录数。
3、响应的数据:json数据。EasyUIDataGridResult
商城项目soa拆分完成
<parent>
<groupId>cn.e3mall</groupId>
<artifactId>e3-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
商城项目第一天代码
此异常的原因是由于mapper接口编译后在同一个目录下没有找到mapper映射文件而出现的。由于maven工程在默认情况下src/main/java目录下的mapper文件是不发布到target目录下的。
逆向工程代码
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
e3mall数据库脚本
CREATE TABLE `tb_content` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`category_id` bigint(20) NOT NULL COMMENT '内容类目ID',
`title` varchar(200) DEFAULT NULL COMMENT '内容标题',
`sub_title` varchar(100) DEFAULT NULL COMMENT '子标题',
`title_desc` varchar(500) DEFAULT NULL COMMENT '标题描述',
`url` varchar(500) DEFAULT NULL COMMENT '链接',
`pic` varchar(300) DEFAULT NULL COMMENT '图片绝对路径',
`pic2` varchar(300) DEFAULT NULL COMMENT '图片2',
ssh分模块maven项目
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
maven项目整合ssh
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
maven项目的sql准备
CREATE TABLE `cst_customer` (
`cust_id` bigint(32) NOT NULL AUTO_INCREMENT COMMENT '客户编号(主键)',
`cust_name` varchar(32) NOT NULL COMMENT '客户名称(公司名称)',
`cust_user_id` bigint(32) DEFAULT NULL COMMENT '负责人id',
`cust_create_id` bigint(32) DEFAULT NULL COMMENT '创建人id',
`cust_source` varchar(32) DEFAULT NULL COMMENT '客户信息来源',
maven整合struts2
1、 创建maven项目(同上)
2、 跳过骨架(同上)
3、 填写坐标信息(同上)
4、 添加web.xml文件(同上)
5、 修改编译版本(同上)
6、 添加坐标 选择Dependencies标签 点击add
jedis操作的简单例子
// 创建连接池的配置对象
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxIdle(Integer.parseInt(pro.get("redis.maxIdle").toString()));// 最大闲置个数。只要超过30个闲置的,就开始关。
basedao的封装
//获得当前类型的带有泛型类型的父类
ParameterizedType ptClass = (ParameterizedType) this.getClass().getGenericSuperclass();
//获得运行期的泛型类型
clazz = (Class) ptClass.getActualTypeArguments()[0];
springboot整合mybatis多数据源
最近由于项目中需要同时连接两个数据库,所以需要配置多个数据源,由于springboot 默认帮我们做了很多自动配置,所以在配置的时候就遇到了问,稍后我们会讨论这个问题。
architecture1-02
<name>architecture1</name>
<url>http://sishuok.com</url>
<modules>
<module>architecture1web</module>
<module>common</module>
<module>customermgr</module>
<module>goodsmgr</module>
<module>goodsmgrweb</module>
</modules>
dubbo-monitor-simple-2.0.0
监控中心是可选的(非必须):
1)Monitor可以不安装。
2)Monitor挂掉不会影响到Consumer和Provider之间的调用,只是丢失部分采样数据。
监控中心可自定义开发:
1)个性化监控运维的需求:
a.服务的健康状况
b.服务的压力和性能状况
c.告警通知以便及时处理等
dubbo-admin-0.0.1-SNAPSHOT.jar
dubbo admin的jar包。
1、下载zookeeper
网址 https://archive.apache.org/dist/zookeeper/zookeeper-3.4.13/
2、解压zookeeper
解压运行zkServer.cmd ,初次运行会报错,没有zoo.cfg配置文件
dubbocode2
当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。
可以按照以下的步骤进行版本迁移:
在低压力时间段,先升级一半提供者为新版本
再将所有消费者升级为新版本
然后将剩下的一半提供者升级为新版本
老版本服务提供者配置:
dubbo-project1
建议将服务接口,服务模型,服务异常等均放在 API 包中,因为服务模型及异常也是 API 的一部分,同时,这样做也符合分包原则:重用发布等价原则(REP),共同重用原则(CRP)。
Java思维导图
Java代码在进行Javac编译的时候,并不像C和C++那样有“连接”这一步骤,而是在虚拟机加载Class文件的时候进行动态链接。也就是说,在Class文件中不会保存各个方法、字段的最终内存布局信息,因此这些字段、方法的符号引用不经过运行期转换的话无法得到真正的内存入口地址,也就无法直接被虚拟机使用。当虚拟机运行时,需要从常量池获得对应的符号引用,再在类创建时或运行时解析、翻译到具体的内存地址之中。
并发编程艺术思维导图
调用scheduleAtFixedRate()方法或者scheduleWithFixedDelay()方法时,会向DelayQueue添加一个实现了RunnableScheduledFuture接口的ScheduledFutureTask
spring源码解析思维导图
XmlBeanFactory继承自DefaultListableBeanFactory,而DefaultListableBeanFactory是整个bean加载的核心部分,是Spring注册及加载bean的默认实现,XmlBeanFactory与DefaultListableBeanFactory不同的地方其实是在XmlBeanFactory中使用了自定义的XML读取器XmlBeanDefinitionReader,实现了个性化的BeanDefinitionReader读取。
商城11天代码
方案一:在Controller中取cookie中的token数据,调用sso服务查询用户信息。
方案二:当页面加载完成后使用js取token的数据,使用ajax请求查询用户信息。
商城项目第十天代码
请求的url:/user/check/{param}/{type}
参数:从url中取参数1、String param(要校验的数据)2、Integer type(校验的数据类型)
响应的数据:json数据。e3Result,封装的数据校验的结果true:成功false:失败。
业务逻辑:
商城项目第九天代码
FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出。FreeMarker与Web容器无关,即在Web运行时,它并不知道Servlet或HTTP。
商城第八天项目
方案一:在taotao-manager中,添加商品的业务逻辑中,添加一个同步索引库的业务逻辑。
缺点:业务逻辑耦合度高,业务拆分不明确
lucene第一天完整代码
@Test
public void testBooleanQuery() throws Exception {
IndexSearcher indexSearcher = getIndexSearcher();
BooleanQuery booleanQuery = new BooleanQuery();
Query query1 = new TermQuery(new Term("fileName","apache"));
Query query2 = new TermQuery(new Term("fileName","lucene"));
lucene的第一个程序
// 1.创建一个indexwriter
// 1)指定索引库的存放位置Directory对象
// 2)指定一个分析器,对文档内容进行分析
Directory directory = FSDirectory.open(new File("D:\\temp\\index"));
Analyzer analyzer = new StandardAnalyzer();// 官方推荐
IndexWriterConfig config = new IndexWriterConfig(Version.LATEST, analyzer);
IndexWriter indexWriter = new IndexWriter(directory, config);
商城项目第七天代码
第一步:把solr 的压缩包上传到Linux系统
第二步:解压solr。
第三步:安装Tomcat,解压缩即可。
第四步:把solr部署到Tomcat下。
第五步:解压缩war包。启动Tomcat解压。
第六步:把/root/solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中。
商城项目day06源码
查询内容列表时添加缓存。
1、查询数据库之前先查询缓存。
2、查询到结果,直接响应结果。
3、查询不到,缓存中没有需要查询数据库。
4、把查询结果添加到缓存中。
5、返回结果。
第五天的代码
请求的url:/content/query/list
参数:categoryId 分类id
响应的数据:json数据
{total:查询结果总数量,rows[{id:1,title:aaa,subtitle:bb,...}]}
EasyUIDataGridResult
描述商品数据List<TbContent>
e3-content-new
需要一个内容分类表和一个内容表。内容分类和内容表是一对多的关系。
内容分类表,需要存储树形结构的数据。
内容分类表:tb_content_category
内容表:tb_content
e3-商品分类选择-阶段性代码
state:如果节点下有子节点“closed”,如果没有子节点“open”
创建一个pojo来描述tree的节点信息,包含三个属性id、text、state。放到e3-common工程中。