杂记整理

Spring
1、@Resource和@Autowired的区别
                   两者都是用来实现依赖注入的,区别在于前者默认基于byname注入,后者默认基于bytype注入。
2、@ConfigurationProperties的使用
                   该注解通常和@Component、@Bean、@EnableConfigurationProperties其中之一一块使用
                   同时注释到Bean上,初始化Bean时(@Component、@)会根据@Configuration指定的配置参数进行实例化Bean属性。
                    @Component
                    @Configuration(prefix="user1")
                    public class User{
                        private String name;//实例化后:Tom
                        //省略getting和setting方法                    
                    }
                    
                    //对应的appliction.properties文件
                    user1.name = Tom
                    
                    //@EnableConfigurationproperties通常注释到SpringBoot启动类上,指定Bean进行实例化
                    @SpringBootApplication
                    @EnableConfigurationProperties({User.class})
                    public class Appliction{
                        public static void main (String[] args) throw Exception{
                            SpringApplication.run(Appliction.class, args);                        
                        }                    
                    }
3、@RequestMapping参数:value和params的区别
                 value的值可以是一个url地址的形式或者正则表达式或者rest风格的形式,而params正如其名是参数,访问的时候params的值只能作为参数,不能作为访问的地址。
//value的使用
@RequestMapping(value="list",method=RequestMethod.GET)
public String getEmployeeData(ModelAndView mav,HttpServletRequest request,HttpServletResponse response){
    System.out.println("============");
    return "test";
}
访问的地址可以是/xx项目名/xxcontroller名/list

//params的使用
@RequestMapping(value="list",params="one",method=RequestMethod.GET)
public String getEmployeeData(ModelAndView mav,HttpServletRequest request,HttpServletResponse response){
    System.out.println("============");
    return "test";
}
这种方式如果两个方法的value值相同,只需要加上参数one即可区别,访问的地址为/xx项目名/xxcontroller名/list?one
或者
@RequestMapping(params="list",method=RequestMethod.GET)
public String getEmployeeData(ModelAndView mav,HttpServletRequest request,HttpServletResponse response){
    System.out.println("============");
    return "test";
}
这种方式要访问该方法的地址为:/xx项目名/xxcontroller名?list,没错,这里没有方法名,list只是参数。
4、@EnableScheduling和@Scheduled的使用
                   定时任务在配置类上添加@EnableScheduling开启对定时任务的支持,在相应的方法上添加@Scheduled声明需要执行的定时任务。SchedulingConfigurer,@EnableAsync 和 @Async 使定时任务并行执行
5、Spring依赖注入时注入多个实现相同接口的Bean时,可以注入List<Bean>
6、接口CommandLineRunner

              日常开发中有可能需要实现在项目启动后执行的功能,因此诞生了此篇文章。思路:SpringBoot提供的一种简单的实现方案,实现CommandLineRunner接口,实现功能的代码放在实现的run方法中加载,并且如果多个类需要夹加载顺序,则实现类上使用@Order注解,且value值越小则优先级越高。


常用工具
1、IDEA快捷键:
                   查看接口的实现类有哪些:ctrl + alt + b
2、代码提示和补充功能有一个特性:区分大小写
                      区分大小写的情况是这样的:比如我们在 Java 代码文件中输入 stringBuffer IntelliJ IDEA 是不会帮我们提示或是代码补充的,但是如果我们输入 StringBuffer 就可以进行代码提示和补充。如果想不区分大小写的话,改为 None 选项即可
                      settings->Editor->General->Code Completion ->case sensitive completion none
3、设置IntelliJ IDEA显示内存
                     IntelliJ IDEA 14 版本默认是不显示内存使用情况的,对于大内存的机器来讲不显示也无所谓,但是如果是内存小的机器最好还是显示下。点击后可以进行部分内存的回收。
4、设置Tab多行显示
              在打开很多文件的时候,IntelliJ IDEA 默认是把所有打开的文件名 Tab 单行显示的。
5、设置代码检查等级,针对当前文件
              IntelliJ IDEA 对于编辑大文件并没有太大优势,很卡,原因就是它有各种检查,这样是非常耗内存和 CPU 的,所以为了能加快大文件的读写,一般会暂时性设置为 None。
  1、Inspections 为最高等级检查,可以检查单词拼写,语法错误,变量使用,方法之间调用等。
  2、Syntax 可以检查单词拼写,简单语法错误。
  3、None 不设置检查。
6、idea常用插件
                Codota 辅助开发神器
                  Translation 翻译插件
                  Easy Code 代码生成工具
                  Grep Console 日志工具 控制台console输出日志时区分颜色


MyBatis
1、注解:@MapperScan
                    扫描接口所在包,并根据映射关系实现包下的接口。
                    注意:mybatis-plus的增强,可以免实现接口和映射关系
2、

JAVA
1、枚举类:enum的values()方法
               该方法比较特殊在枚举api文档中也找不到
               理论上该方法能够将枚举类转变为一个枚举类型的数组。
public enum EnumDemoFirst {
    RED(1,"hongse"),GREEN(2,"lvse"),YELLOW(3,"huangse");
    //省略
}

public class EnumTest {
    public static void main(String[] args) {
        EnumDemoFirst[] values = EnumDemoFirst.values();
        for (EnumDemoFirst enumDemoFirst : values) {
            //省略
        }
    }
}
2、@PostConstruct
            Java提供的注解,该注解用来修饰一个非静态的void方法,被该注解注释的方法会在Bean创建时执行,顺序:Constructor(构造方法) -> @Autowired(依赖注入) -> @PostConstruct(注释的方法)
3、jdk1.8中Map:computeIfAbsent方法说明
// 方法定义
default V computeIfAbsent(K key, Function<? super K, ? extends V> mappingFunction) {
    ...
}

// java8之前。从map中根据key获取value操作可能会有下面的操作
Object key = map.get("key");
if (key == null) {
    key = new Object();
    map.put("key", key);
}

// java8之后。上面的操作可以简化为一行,若key对应的value为空,会将第二个参数的返回值存入并返回
List<String> list2 = map.computeIfAbsent("key", k -> new ArrayList<String>());
list2.add("123");


Object key2 = map.computeIfAbsent("key", k -> new Object());
key2.toString();
4、
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值