0x00 基础

多例bean和单例bean,都使用注解@Component纳入到spring的管理,不同之处是多例bean使用注解@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)标注,而单例bean是默认的,或者显示的使用注解@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)标注。

- 阅读剩余部分 -

公司使用Mybatis做ORM,同时使用了mybatis-generator这个插件生成基础的增删改查语句,只要mybatis-generator:generate帅气的回车即可。但是提供的语句毕竟是基础的,虽然可能适合80%的场景,毕竟还有一部分需要自己处理。

通常,我们会自己修改某Mapper.xml文件,然后在某Mapper.java文件中,添加一个方法,这样就行了。

但是,很多时候并不需要这么麻烦,特别是查询的时候,可以直接修改mybatis-generator生成的某Example.java文件完成。

这个修改基于生成代码中的Criteria,有如下四种:

  1. noValue,即不需要参数,自己本身就是查询条件
  2. singleValue,即单值参数,比如常见的比较(等于,小于,大于,不等于)
  3. betweenValue,即between参数,给出下限和上限,比如常见的日期区间查询
  4. listValue,即列表参数,同时使用innot in实现

- 阅读剩余部分 -

服务端程序启动后,要向外提供服务。如果要对服务端程序进行操作,比如切量(从注册中心注册/退出,停止/开始去接收/发送kafka消息),获取服务信息(当前启动的service
列表,消息队列情况)等等。常用的操作是做一个服务端管理系统进行管理,常见的是做一个web系统,比如motan,druid等。但是做web系统可能很麻烦耗时,这里介绍使用telnet进行管理。

telnet是几乎所有操作系统带有的命令,使用广泛。那使用telnet对应用进行管理,就是监听一个端口,处理telnet连接即可。


- 阅读剩余部分 -

最近在对公司的www官网项目进行安全整改,其中有一项就是对配置文件中的安全信息进行加密处理,不得明文展示,比如数据库的连接串,用户名,密码等。

Spring在对properties文件进行处理得时候有一个类叫做PropertyPlaceholderConfigurer,这个类可以指定加载的properties文件。
比如加载一个jdbc.properties

jdbc.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8
jdbc.username=test
jdbc.password=test

然后在XML中做如下配置:

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigure">
    <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />
    <property name="ignoreResourceNotFound" value="true" />
    <property name="locations">
        <list>
            <value>classpath:jdbc.properties</value>
        </list>
    </property>
</bean>


- 阅读剩余部分 -