- 博客(76)
- 资源 (3)
- 收藏
- 关注
原创 勿忘初心——代理模式之静态代理与动态代理
什么是代理模式?简单点说,就是我们要访问A类的方法m(),但是不直接去调用A.m(),而是通过一个中介(代理类)去调用。这样做的目的在于,我们可以在不改变目标方法的前提下,通过在代理类调用目标方法的前后增加额外的操作,以增强目标方法,来满足我们的需求。代理模式的作用静态代理静态代理的代理类和目标类(被代理类)需要实现同一个接口或继承同一个方法,代理类中会维护一个目标类对象,我们通过调用代理类的对应方法以达到调用目标类的目的,我们也可以在代理类中相应的方法前后增加我们自己的逻辑来增强目标类。静态
2020-08-30 21:02:33
154
原创 勿忘初心——Java中的注解
注解实质:一种标记作用:在程序运行时通过反射得到注解标注的类、方法、属性,然后对其做相应的处理。我们都知道在使用有些ORM框架的时候,只用定义一个接口就能做到对数据库的增删改查,其实质就是利用注解来生成对应的sql语句,下面我们可以自定义注解实现这一过程:定义相关注解// 实现表名和实体类的映射@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)public @interface Table { String n
2020-08-30 17:59:46
115
原创 勿忘初心——JDBC基础回顾
使用JDBC操作数据库的基本步骤加载驱动Class.forName("com.mysql.cj.jdbc.Driver");建立连接Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/vip_test?serverTimezone=UTC&characterEncoding=utf8&useCursorFetch=true", "root", "123");创建State
2020-08-29 16:19:49
172
原创 勿忘初心——Tomcat基础回顾
安装配置及启动这里简单说一下Tomcat的下载及安装,都很简单。下载地址:Tomcat官方下载地址windows平台下可以下载installer安装包(直接点击下一步就可安装完成),也可以下载zip包,直接解压即可使用。Linux平台可以直接wget下载解压即可使用。配置环境变量(当然也可以不配)在环境变量中加入:CATALINA_HOME=tomcat根目录启动Linux 平台$CATALINA_HOME/bin/startup.sh$CATALINA_HOME/bin/cata
2020-08-29 11:30:30
97
原创 不忘初心——Java基础复习
好的代码味道一个好的代码具有以下几个特点,这几个特点呈现递进关系:没有重复的代码段高内聚低耦合,减少类之间的耦合度扩展性好,当增加新功能时尽可能少的改变原有代码上面几点看起来很简单,但是大部分人都做不到,尤其是最后一点。...
2020-08-29 00:12:52
157
原创 spring注解开发——@Profile根据环境动态注册组件
根据环境动态激活组件☞@Profile我们一般会有这样的需求,开发环境用的数据源与生产环境不一样,也就是dev环境我们想要使用dev的DataSource,生产的我们使用生产的DataSource,此时我们就要用到@Profile注解。我们看下面的案例:配置文件有三个bean,我们想在不同环境只激活其中的一个@Configurationpublic class ProfileAnnotat...
2019-08-29 15:38:35
264
原创 spring注解开发——@Value给属性赋值
使用@Value注解给属性赋值@Value给属性赋值有三种方式:基本类型SpEL表达式:#{表达式},也就是Spring Expression Language读取配置文件值:${变量名}根据案例,我们看看这三种方式的具体用法:基本类型public class Honey { @Value("Li fan") private String name;}...
2019-08-28 15:01:49
2766
3
原创 spring注解开发——说说bean的生命周期
说说Bean的生命周期bean的生命周期大家可能都知道,我这里主要说说在bean生命周期的各个阶段我们可以做些什么@Bean单例模式下这里我们定义一个ColorRed类作为简单的bean,在类中增加两个方法,init()作为初始化bean时调用,destroy()作为销毁bean时调用public class ColorRed { public ColorRed() { ...
2019-08-26 19:56:45
121
原创 spring注解开发——向IOC容器注册组件的几种方式
向IOC容器注册组件的几种方式第一种大家都常见,配置包扫描+类上注解(@Component, @Controller, @Service, @Repository, @Resource)也就是这样:// 配置类@Configuration@ComponentScan("com.example.demo.bean")public class AnnotationConfigTestI...
2019-08-25 12:15:04
441
原创 spring注解开发——按条件注册bean之@Conditional
按条件注册bean之@Conditional需求:我们希望某些bean在特定环境下才注册到IOC容器,比如,根据当前操作系统的不同,选择性的注册一些bean到IOC容器中。初识@Conditional注解,我们看看其注释:Indicates that a component is only eligible for registration when all {@linkplain #va...
2019-08-24 14:08:45
687
原创 spring注解开发——bean的作用域和懒加载
bean作用域与懒加载bean作用域有:singleton:默认单例,也就是每次去IOC容器拿同一个名称的bean,返回的都是同一份prototype:多例,每次去拿,IOC容器都为我们新建一个实例request:每个请求创建一个bean,在web环境下使用(几乎不用)session:每个session创建一个bean,在web环境下使用(几乎不用)可能大家都知道默认的bean为单...
2019-08-24 10:57:05
288
原创 Spring注解开发——说说@Autowired
关于Autowired那点事大家都知道,注解出来之前,向一个bean中注入另一个bean我们需要在配置文件里配置,像这样:<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w...
2019-08-23 19:51:03
272
原创 Mysql之死锁解决之路
最近工作中遇到了并发插入导致mysql死锁,遂查找了相关博文对mysql事务以及锁相关知识进行了学习,下面是看到的比较好的几篇文章事务与隔离级别常见锁类型常见SQL语句加锁分析死锁问题的分析和解决...
2019-07-23 16:00:57
179
原创 java函数式编程:四大Function
java.util.function包下的四大Function1. Consumer 消费者public interface Consumer<T> { void accept(T t);}从名字可以看出,消费者是来消费的,它接受一个数据,没有任何返回值。简单使用:比如我们只想打印列表中的每个元素,这里的forEach(Consumer)里面接受的参数就是一个C...
2019-07-19 11:13:30
6388
原创 mysql关于left join的疑问
需求:有A、B两个表,在A表中筛选出排除B表中已经含有的A表的数据后剩下的数据A表如图:B表如图:这里首先在B表找到alarm_rule_id=10000000所对应的两条数据,他对应的template_id为:176267674798522368、176267674798522369(这个template_id在A表已经被删了,但是不影响),然后在A表排除这两个template_id对...
2019-07-18 16:58:49
271
原创 技术这点事——Git忽略某个文件
方法一:修改项目根目录下的.gitignore文件,排除的是公共的需要排除的文件,会被提交到版本库.settings/*target/**/.settings/**/target/*.idea/**/.project*/.classpath.project.classpath# Intellij*.iml*/*.iml看最后两个配置,这里我们排除了当前(.gitign...
2019-07-11 10:18:02
2480
原创 每天读点java源码——LinkedList
简介首先看源码里的第一句注释:Doubly-linked list implementation of the {@code List} and {@code Deque} interfaces. Implements all optional list operations, and permits all elements (including {@code null})意思就是L...
2019-07-05 17:28:38
163
原创 代码整洁之道——函数
短小 函数的第一条规则是要短小。第二条规则还是要短小。20行封顶。每个函数只做一件事。使用描述性的名称 好的名称可以较好的描述函数所做的事。别害怕长名称。函数参数 最理想的函数参数是一,其次是而,应尽量避免三。当函数需要三个以上的参数时,就应该考虑应该封装为类。使用异常替代返回错误码 try/catch代码块丑陋不堪,搞乱了代码结构,应该把try和catch代码块的主体部分抽离出...
2018-08-14 09:54:36
218
原创 代码整洁之道——命名
名副其实 变量、函数或者类的名称应该告诉你,它为什么存在,它做什么事,应该怎么用。如果名称需要注释类补充,那就不算是名副其实。避免误导 避免留下隐藏代码本意的错误命名。做有意义的区分 废话都是冗余。使用读得出来的名称使用可搜索的名称 禁止使用单字母名称和数字常量。添加有意义的语境...
2018-08-13 17:15:53
164
原创 什么是整洁代码
我喜欢优雅和高效的代码。代码逻辑应当直截了当,叫缺陷难以隐藏;尽量减少依赖关系,使之便于维护;依据某种分层战略完善错误处理代码;性能调至最优,省的别人做没规矩的优化,搞出一堆混乱来。整洁的代码只做好一件事。 —–Bjarne Stroustrup...
2018-08-13 16:29:48
725
转载 阿里首席架构师分享的Java工程师职业规划
一初级程序员:做一些静态的界面;程序员:做一些增删改查的小模块;中级程序员:做逻辑较复杂的模块;高级程序员:做核心模块;项目经理:系统的整体架构;部门经理:多项目的管理;总裁:多部门以及企业的发展规划。二如果刚毕业,就多花几年积累经验,不可能靠一门绝技吃遍天下,不要指望java 赚钱多还是c++ or .NET 赚钱多。太早。 积累经验为主。积累设计,架构,测试,交流,管理,情商等多方面的经验。...
2018-08-08 18:36:29
241
原创 慎用重载 之 自动装箱带来的麻烦
考虑如下程序:public class Test { public static void main(String[] args) { Set<Integer> set = new TreeSet<Integer>(); List<Integer> list = new ArrayList<Integer>...
2018-08-08 17:57:08
276
转载 程序员究竟能干多少年?
程序员这个职业究竟可以干多少年,在中国这片神奇的土地上,很多人都说只能干到30岁,然后就需要转型,就像《程序员技术练级攻略》这篇文章很多人回复到这种玩法会玩死人的一样。我在很多面试中,问到应聘者未来的规划都能听到好些应聘都说程序员是个青春饭。因为,大多数程序员都认为,编程这个事只能干到30岁,最多35岁吧。每每我听到这样的言论,都让我感到相当的无语,大家都希望能...
2018-08-08 09:21:29
2654
转载 程序员自学完一个新框架后
程序员自学完一个新框架后 当你爱上一个程序员…… 程序员的类型…… 程序员家的孩子 调试使我开心 失败的程序员 VS 成功的程序员 Java & C 语言程序员 修正错误所用的时间VS错误的愚蠢程度 ...
2018-08-07 20:57:36
407
原创 从学生到职场的转变——初入职场
七月份入职,到现在将近一个月了。 初入职场,却没有感受到很浓厚的职场氛围,可能这与IT行业有关,完全不像电视剧和小说里描述的那样:职场险恶,暗流涌动,每天各种勾心斗角,鸡毛蒜皮。。。相反,大家每天在一起讨论技术,研究技术,虽然偶尔也会有所争执,但并无大碍,毕竟争执来源于对技术的精益求精。很庆幸我在的是互联网行业,自从入坑,就对这个行业充满了憧憬,希望未来也能成为一个技术大牛。我相信这个愿望...
2018-08-07 20:27:24
2926
原创 时隔三年,再次回归
看了一下上次发博客的时间,2015年,转眼三年过去,都似乎忘记了博客这回事......最近学习一些技术,再次看到CSDN的强大,打算回来记录一些学习的心路历程~ ...
2018-08-07 16:55:29
288
原创 myeclipse中详细配置oracle数据库,mySql数据库(下)
在myEclipse中怎么配置mySql数据库,以下是详细的步骤第一步:第一步:在myEclipse打开Myeclipse Database Explore视图第二步:在左侧DB Browser下的空白处右键—>new....第三步:打开如下界面后,开始配置参数这里要注意,每一个选项都有正确填写1.Driver template:选择MySQ
2015-08-09 21:15:12
648
原创 myeclipse中详细配置oracle数据库,mySql数据库(上)
如何在myEclipse中配置oracle数据库第一步:在myEclipse打开Myeclipse Database Explore视图第二步:在左侧DB Browser下的空白处右键—>new......第三步:打开如下界面后,开始配置参数这里要注意,每一个选项都有正确填写1.Driver template:选择Oracle(Thin driver)
2015-08-09 10:27:40
3432
转载 千里之行,始于足下之:初识Hibernate
一、综述Hibernate(对象关系映射框架)是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取
2015-04-08 11:40:10
539
centos下使用Nginx+uWsgi部署Python Flask项目的详细配置
2017-05-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅