前人说过要对新技术保持好奇。对于游戏开发来讲,前端表现几年会有大的技术革新,还记得flash红火时,刚毕业就敢要入万的月薪。现在过气了,3d开始流行,h5也要占半边天。
反而服务端,就算你拿着五年前的技术,也不大会被市场淘汰,游戏业务还是很窄的 窄的原因,我想是业务需求太小,有多少游戏会出生,能有多少上线,又有几款成大作。
刚开始还可能要好好干,好好优化,结果一款款开发的游戏,还没上线都挂了。心凉了。技术架构根本没来及在线上验证,在上线前都是完美的,牛B的,自大了
很少有一款产品,大作,并且还能持久性的前进。技术能有保持同步的迭代,进化的环境很少
微服务现在很火,有什么技术大会,这是必说的话题。spring boot作为微服务新一代实现技术,也就少不了大师们的推广。
war时代的结束
这是最近听到让我耳目一新的话。
太好了,最讨厌了war了,最不想写web了
原以为boot是个很新的东西,看了下介绍原来还是spring,只是更方便的使用spring
spring boot没有引入任何形式的代码生成,而是利用spring 4的条件化配置特性,以及Maven和Gradle提供的传送依赖解析,以此实现spring应用程序上下文里的自动配置 从本质上来说,spring boot就是spring,它做了那些没有它你自己也会去做的spring bean配置
原来自己开发一个spring工程 ,你得去拷贝一份application.xml模块,来修改配置一下,而现在不需要你自己动手去处理这个模块xml了。
现在技术发展都是向自动化,智能化发展。
原来ant时代,也一样去搞一份模板配置,修修改改。后面推出maven,不要再去处理模板配置了。
原来的gate是用servlet做的,鉴于以上的原因现在改成boot
找一个简单的boot demo运行一下,感受一个boot的神奇。
pom里面加上依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.3.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
再加上一个controller
@RestController
public class UserController {
@RequestMapping(value = "/users/{username}",method = RequestMethod.GET)
public String getUser(@PathVariable String username, @RequestParam String pwd){
return "Welcome,"+username;
}
}
一个入口类
@Configuration
@EnableAutoConfiguration
public class App
{
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
Run App,就可以通过http://localhost:8080/users/jackchu 访问了
完整代码:https://github.com/zhuxingsheng/springbootdemo
就是这么神奇,简单的不能再简单了。就这样,一个web项目就行了。不再需要以前的xml,properties配置,不再需要运行一个web容器
老的servlet项目,只需要在入口类上加个@ServletComponentScan注解,就能识别以前写的servlet,太不可想象。
程序员未来也要失业了,受不了这技术进步的速度。
虽然很方便,但对于被虐待惯的,不被虐待真是不习惯。以前写了很多的配置,再都不要了,还真是找不到方向,怎么使用现在简便的方式处理业务需求。
怎么把原来spring的xml bean配置改成boot方式?
@Configuration
@ImportResource(locations={"classpath:application-xxx.xml"})
public class Config {
}
这样就引入了自定义的xml配置。
spring boot推荐使用thymeleaf模板引擎,又有新的技能要学习;
这个世界永远不变的就是变化,人人都知道的真理,但真变化了,有时真的头疼
很多公司不升级技术,反正都能满足业务需求,以不变应万变。
Thymeleaf是一个XML/XHTML/HTML5模板引擎,它的语法要求比html严格些,以前写的html都有各样的问题
Element type “myelement” must be followed by either attribute specifications, “>” or "/>
onload="load()"
Uncaught ReferenceError: load is not defined
JS中有些特殊字符需要转义时,直接用
<script language="javascript" th:inline="javascript">
//<![CDATA[
//]]>
</script>
简单方便快捷。
现在已经把老项目改完成了。
有惊喜也有深坑,现在的技术真是越来越简捷,这背后的原理我想是约定优于配置
你需要遵循约定,才能如鱼得水;要学习的也就是技术的约定,顺势而为,剑人合一