java从精通到入门

一、前言

        在平时的学习中我们只会看到java从入门到精通,从来没有见过java从精通到入门。根据博主多年的学习经验,其实java从入门到精通,还是java从入门到放弃,还是java从精通到放弃都是一个错误的学习路径。博主就是在这条路上走了无数的弯路,以致一直都无法进步。从客观现实来讲,java从精通到入门才是正确的学习之道。比如我们对现实世界的认知也是如此,在物理世界里,构成物质的都是基本粒子,比如分子,原子,电子,中子,甚至更小的粒子。但是我们认识世界并不是从这些粒子开始认识,而是先认识了物体,比如动物,植物,建筑物,生活用品等等。等到我们都认识了这些事物,才会慢慢去了解这些事物组成的元素。这是复合人们的认知的。记得博主在上大学的学习软件工程,就整天学习各种数学,离散数学,数据结构,算法这些东西,但是导致的结果是我等到毕业的时候,几乎还不会写程序。这就比如,你从小教一个婴儿什么是分子,什么是原子,这些分子,原子它会构建成一张桌子,但是当你把一张桌子摆在他面前时,我断言他肯定不知道他是何物。在平时的工作实践中,无数的证明,我们学习技术都是从宏观到微观。而不是从微观到宏观学习的更快。

二、易上手的JAVA开发框架

即使不太懂得的java的基础知识,我们根据java的开发框架,就能简单的开发javaweb程序和项目,比如我们最经典的一般的java接口请求流程:controller, service,dao

1、controller


	@ApiOperation(value = "分页查询日志信息列表", notes = "分页查询日志信息列表")
	@PostMapping("pageList")
	public ResponseData queryPage(@RequestBody Map param) {
		PageUtils pageUtils = tOptLogService.queryPage(param);
        return ResponseData.success(pageUtils);
	
	}

2、service

@Service
@Transactional(rollbackFor = Exception.class)
public class TOptLogService extends ServiceImpl{

	@Autowired
	private TOptLogMapper tOptLogMapper;
    /**
     * 分页查询权限信息
    * @param param
    * @return
    */
   public PageUtils queryPage(Map param) {

       IPage page = new Query().getPage(param);
       QueryWrapper tOptLogQW = new QueryWrapper();
       
		if (param.containsKey("userId")) {
			tOptLogQW.like("user_id", param.get("userId").toString());
		}
		if (param.containsKey("userName")) {
			tOptLogQW.like("user_name", param.get("userName").toString());
		}
	    tOptLogQW.orderByDesc("create_time");
        IPage tOptLogIPage = tOptLogMapper.selectPage(page, tOptLogQW);
        return new PageUtils(tOptLogIPage);

   }
	
}

 dao层

    /**
     * 根据 entity 条件,查询全部记录(并翻页)
     *
     * @param page         分页查询条件(可以为 RowBounds.DEFAULT)
     * @param queryWrapper 实体对象封装操作类(可以为 null)
     */
    

> P selectPage(P page, @Param(Constants.WRAPPER) Wrapper queryWrapper);

三、研究底层框架

spring框架在javaweb中最重要的两个功能,一个是IOC一个AOP

1、IOC :控制反转,就是把原先我们代码里面需要实现的对象创建、依赖的代码,反转给容器来帮忙实现。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。

Spring 启动时读取应用程序提供的Bean配置信息,并在Spring容器中生成一份相应的Bean配置注册表,然后根据这张注册表实例化Bean,装配好Bean之间的依赖关系,为上层应用提供准备就绪的运行环境。

java从精通到入门_第1张图片

2.AOP:

AOP的全称是Aspect Orient Programming,即面向切面编程,扩展功能不通过修改源代码实现。

实现方式:动态代理(必须有接口) 通过java.lang.reflect.Proxy类实现。 动态代理就是为了解决静态代理不灵活的缺陷而产生的。静态代理是固定的,一旦确定了代码,如果委托类新增一个方法,而这个方法又需要增强,那么就必须在代理类里重写一个带增强的方法。而动态代理可以灵活替换代理方法,动态就是体现在这里。同时,静态代理每个方法都需要单独写一个代理类,而动态代理一个接口只实现一个动态代理类即可。

你可能感兴趣的:(java,java,开发语言)