请问,spring boot vue 架构架构什么技术 实现与手机app的通信?

spring吧-百度贴吧--百度spring技术吧
签到排名:今日本吧第个签到,
本吧因你更精彩,明天继续来努力!
本吧排名:
本吧签到人数:165
可签7级以上的吧50个
本月漏签0次!
成为超级会员,赠送8张补签卡
连续签到:天&&累计签到:天
超级会员单次开通12个月以上,赠送连续签到卡3张
百度spring技术吧
Spring3.2视频教程 教学视频通俗易懂/s/1pL6zFn1需要的自取
/s/1dF286Y1 我已经学会,新的资料合集,好不容易搞到的 文件没有加密,直接支持手机电脑
对于一般的类,我们可以用Autowire自动注入的方法,但是集合怎么注入呢? 比如:List&PaymentVo& paymentVoL
Senvon老师 曾任职于360、盛大、阿里巴巴(集团)有限公司、亚信,等多个上市公司技术经理、资深架构设计
配置了拦截器但appusers/login还是一直被拦截,怎么办
现在的男人都喜欢大波妹,像我们 /6jHbQ5?狗
Spring是现在最为流行的技术开发框架,也是所有企业开发之中必定要使用的开发框架,使用Spring可以有效
刚刚学习完java基础,框架,我这边有一些java的视频,还有storm、hadoop、spark等课程视频,最后还去找数据
Java编程软件教程资源,@我……领取
有老司机给个资源么,百度云也可以
这个@RequestMapping的value值是从哪儿来的
新创的项目 都出错 而且我看视频和老师的不一样。。网上的教程看不懂 求大佬说点通俗易懂的
需要的留邮箱
有没有大神帮个忙,卡了一天了,换了jar包也没用,有大神给个全套吗?
前端是angular JS 服务端是纯接口返回JSON数据,但是访问一个接口储存SESSION 之后,访问另一个接口验证sessio
有大佬知道,怎么解决吗?
各位大大有没有Spring Security视频教程的,网上找了好久都找不到,看文档半懂不懂
我现在学习到了该书的Spring web application 这一章,里面有一个叫做Spittr的项目。严格按照书里的描述准备了
web.xml: &?xml version=&1.0& encoding=&UTF-8&?& &web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-insta
web.xml: &?xml version=&1.0& encoding=&UTF-8&?& &web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-insta
web.xml: &?xml version=&1.0& encoding=&UTF-8&?& &web-app xmlns:xsi=&http://www.w3.org/2001/XMLSchema-insta
如题,最近再做代码走查,有些代码注入了很多bean,但是又没使用
一楼给百度
严重: Unexpected error occurred in scheduled task
访问spring官网提示这个,求大神详解啊
链接:/s/1pJOe34R 密码:4t07
Field messagingTemplate in com.github.mthizo247.cloud.netflix.zuul.web.socket.ZuulWebSocketConfiguration required a single bean, but 2 were
为什么在声明一个成员变量JdbcTempate jt=this.getJdbcTemplate()会是Null(空指针异常),而在方法内直接调用t就
在springmvc.xml中配置组件扫描器 &context:component-scan base-package=&cn.itcast.ssm.controller&&&/context:compon
maven构建springmvc+mybatis+rest+bootstrap(cms开源)SpringMVC + Mybatis + SpringSecurity(权限控制到方法按钮) + Rest(服务) + Webservice(服务)
老牛老师拥有5年以上的开发经验,先后完成过5个重量级系统,包括重庆自来水客服系统、辽宁电信ods应用
《SSM学生管理系统》 百度传课 本课程主要讲解使用SpringMVC+MyBatis开发学生管理系统,课程模块包括:管理
Spring Boot
写测试代码mockMvc = standaloneSetup(homeController).build()报错。是什么情况。 at org.springframework.test.web.servlet.setup.Ab
新人学spring,请有资源的大神分享一下,谢谢
入参类型定义为integer前段传入小数,默认强转integer了, 这样就拿不到原来的小数,进行校验了。例如提
暑假刚学完一些视频课,觉得不错分享给感兴趣的朋友,可以留Q
JAVAWEB图书管理系统/course/introduction/.htm
你可能感兴趣的吧...
发贴红色标题
签到六倍经验
兑换本吧会员
赠送补签卡1张,获得
助攻总额: 43W
贴吧热议榜
发表后自动分享本贴
使用签名档&博客分类:
SpringBoot是快速开发企业应用的一条捷径,尤其是在Spring4以后,项目完全不需要xml配置以来,让开发者感到巨大的流畅感。
我们使用Eclipse搭建一个基于maven的SpringBoot项目,不了解的可以看一下《》。
新建maven项目,把需要的源包都建好,可以删掉web.xml文件,然后打开pom文件。这里我们的依赖要比上面文章里的多一些。
首先删除自动生成的Junit依赖,我们的单元测试虽然也是Junit,不过SpringBoot会自动添加依赖。
然后按照上面那篇文章添加parent
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-parent&/artifactId&
&version&1.2.6.RELEASE&/version&
这里使用的是最新的126发布版,所以不需要像文章中提到的那样增加下面的库
&!-- 使用 Spring repositories --&
&!-- (我们使用的是SNAPSHOT版本,如果用RELEASE版本下面的偶不用写) --&
&repositories&
&repository&
&id&spring-snapshots&/id&
&url&http://repo.spring.io/snapshot&/url&
&snapshots&&enabled&true&/enabled&&/snapshots&
&/repository&
&repository&
&id&spring-milestones&/id&
&url&http://repo.spring.io/milestone&/url&
&/repository&
&/repositories&
&pluginRepositories&
&pluginRepository&
&id&spring-snapshots&/id&
&url&http://repo.spring.io/snapshot&/url&
&/pluginRepository&
&pluginRepository&
&id&spring-milestones&/id&
&url&http://repo.spring.io/milestone&/url&
&/pluginRepository&
&/pluginRepositories&
接下来添加我们这里需要的几个依赖
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-test&/artifactId&
&scope&test&/scope&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-web&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.hateoas&/groupId&
&artifactId&spring-hateoas&/artifactId&
&/dependency&
&dependency&
&groupId&org.springframework.boot&/groupId&
&artifactId&spring-boot-starter-actuator&/artifactId&
&/dependency&
第一个是SpringBoot的单元测试依赖;第二个是最主要的,用来开发webapp的web依赖;第三个是SpringBoot开发Restful服务的HATEOAS依赖;第四个是管理员使用的接口依赖。
然后我们新建一个Model
public class Greeting extends ResourceSupport {
@JsonCreator
@JsonIgnoreProperties(ignoreUnknown = true)
public Greeting(@JsonProperty(value = "gid") long gid, @JsonProperty(value = "content") String content) {
this.gid =
this.content =
这里只列出了类定义和构造器,你需要自己添加getter和setter方法。
这里的注解不是必须的,你可以都删掉。他们的作用可以自己看一下javadoc。
然后建一个controller
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.linkTo;
import static org.springframework.hateoas.mvc.ControllerLinkBuilder.methodOn;
@RestController
public class GreetingController {
private static final String template = "Hello, %s";
private final AtomicLong counter = new AtomicLong();
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value = "name", defaultValue = "world") String name) {
Greeting greeting = new Greeting(counter.incrementAndGet(), String.format(template, name));
GreetingController methodOn = methodOn(GreetingController.class);
// GreetingController methodOn = DummyInvocationUtils.methodOn(GreetingController.class);
Greeting greeting2 = methodOn.greeting(name);
ControllerLinkBuilder linkTo = linkTo(greeting2);
Link withSelfRel = linkTo.withSelfRel();
greeting.add(withSelfRel);
@RequestMapping("/show")
public Greeting show(){
RestTemplate template = new RestTemplate();
Greeting greeting = template.getForObject("http://localhost:8080/greeting?name=323", Greeting.class);
System.err.println(greeting);
@restController注解表明里面的每个action都返回的不是view。
然后我们使用内置的Tomcat服务器部署,这个服务器的性能和你本机下载的绿色版是一样的
@SpringBootApplication
public class Application implements CommandLineRunner{
public static void main(String[] args) {
ConfigurableApplicationContext context =
SpringApplication.run(Application.class, args);
System.out.println("hohoho");
String[] names = context.getBeanDefinitionNames();
Arrays.sort(names);
for (String string : names) {
System.err.println(string);
public void run(String... args) throws Exception {
RestTemplate template = new RestTemplate();
Greeting greeting = template.getForObject("http://localhost:8080/greeting?name=323", Greeting.class);
System.err.println(greeting);
接下来我们分步验收我们的成果(就算成果吧)。
首先运行main方法,在浏览器里访问,你应该能看到你想看到的;然后访问,应该和你预料的也一样,都是返回的JSON串。每个串里都有当前的访问路径,这就是HATEAOS的作用,人们认为调用服务的时候路径拼接不对很影响开发效率就非要加上这个。
我们已经验证了web依赖和hateaos依赖工作正常,接下来看一下actuator。不知道你注意到没有,应用启动的时候输出了很多类似
Mapped "{[/greeting],methods=[GET]}" onto ...
Mapped "{[/env],methods=[GET]}" onto ...
Mapped "{[/info],methods=[GET]}" onto ...
Mapped "{[/health],methods=[GET]}" onto ...
的东西,是程序输出的而非我们打印的。
也行看到第一行你就会明白我们可以尝试访问http://localhost:8080/env 、 http://localhost:8080/health
、 http://localhost:8080/info等路径。actuator提供了很多管理员工具,更多的可以去官网了解。
接下来看一下单元测试。
在我们的GreetingController上面右键-新建-JUnit Test Case,把测试类的目录改到src/test/java下面。然后修改里面的代码,因为我们用不到它默认的测试方法
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MockServletContext.class)
@WebAppConfiguration
public class GreetingControllerTest {
private MockM
public void setUp() {
mvc = MockMvcBuilders.standaloneSetup(new GreetingController()).build();
public void getHello() throws Exception {
ResultActions actions = mvc.perform(MockMvcRequestBuilders.get("/greeting").accept(MediaType.APPLICATION_JSON));
actions.andExpect(status().isOk());
actions.andExpect(content().string(equalTo("Hello world")));
这里面用到了几个静态导入,eclipse对静态导入的处理简直令人发指,你可以copy进去:
import static org.hamcrest.Matchers.equalTo;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
运行它,应该可以通过。然后把最下面一行的注释去掉,也就是增加一个新断言,认为返回的内容是Hello world。这次一定通不过了。
最后我们看一下主运行文件里面的那个run方法
public void run(String... args) throws Exception {
RestTemplate template = new RestTemplate();
Greeting greeting = template.getForObject("http://localhost:8080/greeting?name=323", Greeting.class);
System.err.println(greeting);
看到上面的复写注解就知道它来自哪里了是吧,没错,就是实现的那个接口CommandLineRunner(所以完全可以不实现)。实现了这个接口的类(需要是一个bean,不过@SpringBootApplication注解有这个功能)在成功运行后会调用这个run方法。
我们在run中把返回的json重新组装成Greeting实例。为了更清晰,你最好给Greeting类增加
@Override public String toString()
这个能成功的关键是构造器的参数中使用了@JsonProperty注解,并且使用了value参数。你可以删掉试一下效果。
既然是web service,所以我们的最后一步就是打开CORS访问,不然异步访问不了。我不太明白为什么一个随时随地可以同步访问的地址在异步的时候非要限制。新建一个FIlter
class SimpleCORSFilter implements Filter {
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse)
response.setHeader("Access-Control-Allow-Origin", "*");
response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
chain.doFilter(req, res);
这个类实现了javax.servlet.Filter接口。既然我们没有了web.xml文件,怎么才能让它拦截请求呢?我们可以给这个类加上自动配置的注解,比如org.ponent或org.springframework.stereotype.Repository。
浏览 41184
somefuture
浏览: 561070 次
来自: 上海
请问,对于自定义的登录页面,我的ajax请求方式该怎么写呢,是 ...
翻译的内容在哪里?
关键是这有啥用?
我用的比较传统的方法,就是写一个supportDao的类,把基 ...
spiniper 写道说实话,spring-data并不是很好 ...
(window.slotbydup=window.slotbydup || []).push({
id: '4773203',
container: s,
size: '200,200',
display: 'inlay-fix'专访汪云飞:去繁从简 Spring Boot让你快速构建应用 - 非技术 - ITeye资讯
相关知识库:
汪云飞,开源技术专家,现任职微璟技术CTO,拥有10年以上的JavaEE开发经验。对开源Java框架(Spring、Hibernate/JPA、Spring Boot)、开源GIS(GeoServer、OpenLayers),开源云计算解决方案(IaaS:ClouStack、OpenStack;PaaS:Apache Mesos、Deis、Docker)颇有研究。
近日,汪云飞接受了ITeye的采访,以下是采访内容。
1.请先简单地介绍一下自己?
汪云飞:我2006年毕业武汉理工大学地理信息系统专业,毕业后一直从事Java EE开发和GIS相关的开发和架构工作。
2.目前关注的方向和技术有哪些?
汪云飞:目前我主要关注的方向是Java EE开发,GIS和云计算、大数据等相关的领域。
3.你个人对软件架构有哪些理解?
汪云飞:软件架构是软件系统高层次的架构,我对架构的理解是根据系统的应用场景,系统参与的人(用户、客户、开发者)所设计的系统方案。这个方案描述了系统业务组件的构成,以及各个组件之间是如何通讯的。
好的软件架构师需要有多年的工作经验,对各种应用场景都有整体的解决方案;好的架构师也一定要关注前沿技术为我所用,在我认为也不能脱离一线的开发,空谈架构。
4.为什么会撰写《Java EE开发的颠覆者:Spring Boot实战》这本书?
汪云飞:在我的工作过程中,发现Java EE开发尤其是使用Spring框架开发,面临着大量的配置,且很多程序员对这些配置不是很理解,导致项目里的配置漫山遍野,甚至有很多无用或者有害的配置。对于一个普通的程序员来说,完全掌握Spring框架是一件很艰难的事情,Spring框架在这个时候推出的Spring Boot正为我们解决了这个难题,自我第一次使用Spring Boot后,我就深深被Spring Boot的快速开发所吸引,立即在以后的项目中使用Spring Boot架构;放眼国内,很多程序员还在纠结于如何配置开发,如何整合各种技术,而世界范围内Spring Boot俨然是主流的解决方案,国内网络上关于Spring Boot开发都是玩具级,只言片语,让很多程序员认为Spring Boot只能解决一些常用的场景而不能解决Java EE开发中所遇到的所有的问题,这就促使我想写一本关于Spring Boot书籍,这本书的主要特色是“点睛+实战”,这个我在书里面有讲述,书名之所以命名为《Java EE开发的颠覆者:Spring Boot实战》是因为希望能快速在国内普及Spring Boot,改变我们目前Java EE开发的方式。
5.能否谈谈开发者使用Spring Boot的好处有哪些?在实际使用中,开发者应该注意些什么?
汪云飞:使用Spring Boot开发我们可以享有自动配置、快速构建项目、快速集成新技术的能力。在实际应用开发者需尽量使用Spring 4.x提倡的Java配置,然后我们只要认知Spring Boot是用Spring框架开发出来的技术,Spring Boot只是使用了Spring的新特性实现了自动配置的能力,也就是说在Spring下能做的事情,Spring Boot也能做。
6.互联网发展日新月异,技术也在不断的更迭,在新技术来临时,作为技术人员的你,有什么学习方法或技能可分享?
汪云飞:
1)我们要经常关注技术网站,如csdn,iteye,infoq等;
2)要努力提高英语水平,学习研究第一手的技术资料;
3)对新技术要保持饥饿和敏感,一旦有新技术要主动的了解和学习;
4)学会对技术进行高层次的总结和理解,在相似的新技术出现时可以类比学习快速上手;
5)善于使用搜索引擎检索技术和问题,因为技术资料英文的较多,推荐使用谷歌搜索所有问题、Github检索示例代码、StackOverflow检索报错信息。
6)善于利用成熟的第三方库,当使用一项新技术的时候,不要想着自己一点点啃,要善于利用已经成熟的第三方库,不要重复造轮子;
经常关注出版社出版的最新技术书籍,如电子工业出版社的博文视点。
7.一年一度的毕业季即将来临,你想对即将踏入软件开发岗位的同行门说些什么?分享一下你的经验。
汪云飞:我有以下的建议分享:
1)树立正确的价值观,做技术有前途,做技术可以实现自己的人生理想和抱负;
2)坚持每天学习,除了工作的内容要刻苦钻研以外,8小时外的时间也要充分利用,保持学习习惯;
努力提高英语水平,虽然作为一个程序员不需要很好的英语水平,但是作为一个优秀的程序员必须要有很高的英语水平;
实战理论相结合,不要一味的强调实战或理论,我们必须在实战一段时间后,将实战的内容进行理论的升华,知其然也知其所以然,实战和理论的上述过程一直在我们的工作学习生活中迭代,周而复始。
茶歇期间的访问吗
你好,你说用google来搜索,好像国人不能用呀,我想上都上不了.如果不好公共说,我们私下聊一下.
最后一段真真大实话~~ 手动点赞
专访就7个问题吗
相关资源推荐【Spring&Boot&开发笔记】0&SpringBoot&开篇
【Spring Boot 开发笔记】0 SpringBoot&开篇
0.1 循证架构
&认识来源于实践,而又运用于实践&。
人的认识来源于实践,是随着实践的发展而发展的。通过实践得出的认识,只有作用于实践并通过实践的检验,才能够确定认识的正确与否。
开篇第一回,让我们来探讨一下这个名词:循证架构(Evidence-Based&Architecture)。任何涉及模式,架构模式,编程范式(过程式,面向对象式,函数式,逻辑式,面向服务式)的问题,都是基于解决某个实际业务场景才有其实质存在的意义。循证架构思想来源于&循证实践&。
(备注:循证实践(Evidence-Based
Practise),亦为循证学。本意是"基于证据的实践",其理念始于20世纪末发展起来的循证医学。最初意指医生"将当前所能获得的最佳研究证据与自身的专业技能及患者的价值观整合起来进行治疗"。此后,它便以迅雷不及掩耳之势席卷了整个医疗卫生领域,并不断向邻近学科渗透,形成了循证心理治疗、循证教育学、循证社会学等数十个新的学科领域。)
0.2 Java发展史
Java的历史可以追溯到1991年4月,Sun公司的James Gosling领导的绿色计划(Green
Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行,他们使用了C/C++/Oak语言。由于多种原因,绿色计划逐渐陷于停滞状态。
1994年下半年,由于Internet的迅猛发展和环球信息网的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games
Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。
但没有相应的开发库而只靠Java语言来进行开发肯定是困难重重,所以Sun公司在1996年的1月23日发布了JDK
1.0来帮助开发人员的开发。JDK包括两大部分:运行环境和开发工具。紧跟着,Sun公司在日发布了JDK
1.1。JDK1.1相对于旧版本最大的改进,是推出了JIT(Just-In-Time)编译器,另外一个改进是AWT
1.1时代,Java平台分为PersonalJava与EmbeddedJava,前者比较适用于运算资源和内存丰富的设备,而资源有限者适用于后者。这样的分类明显不符合时代发展的潮流,所以,Java平台处处蕴藏着新的翻天覆地的革命。
0.3&Java三大主流框架概述
Struts、Hibernate和Spring是我们Java开发中的常用关键,他们分别针对不同的应用场景给出最合适的解决方案。但你是否知道,这些知名框架最初是怎样产生的?
我们知道,传统的Java
Web应用程序是采用JSP+Servlet+Javabean来实现的,这种模式实现了最基本的MVC分层,使的程序结构分为几层,有负责前台展示的JSP、负责流程逻辑控制的Servlet以及负责数据封装的Javabean。但是这种结构仍然存在问题:如JSP页面中需要使用&%%&符号嵌入很多的Java代码,造成页面结构混乱,Servlet和Javabean负责了大量的跳转和运算工作,耦合紧密,程序复用度低等等。
为了解决这些问题,出现了Struts框架,它是一个完美的MVC实现,它有一个中央控制类(一个Servlet),针对不同的业务,我们需要一个Action类负责页面跳转和后台逻辑运算,一个或几个JSP页面负责数据的输入和输出显示,还有一个Form类负责传递Action和JSP中间的数据。JSP中可以使用Struts框架提供的一组标签,就像使用HTML标签一样简单,但是可以完成非常复杂的逻辑。从此JSP页面中不需要出现一行&%%&包围的Java代码了。
可是所有的运算逻辑都放在Struts的Action里将使得Action类复用度低和逻辑混乱,所以通常人们会把整个Web应用程序分为三层,Struts负责显示层,它调用业务层完成运算逻辑,业务层再调用持久层完成数据库的读写。
使用JDBC连接来读写数据库,我们最常见的就是打开数据库连接、使用复杂的SQL语句进行读写、关闭连接,获得的数据又需要转换或封装后往外传,这是一个非常烦琐的过程。
这时出现了Hibernate框架,它需要你创建一系列的持久化类,每个类的属性都可以简单的看做和一张数据库表的属性一一对应,当然也可以实现关系数据库的各种表件关联的对应。当我们需要相关操作是,不用再关注数据库表。我们不用再去一行行的查询数据库,只需要持久化类就可以完成增删改查的功能。使我们的软件开发真正面向对象,而不是面向混乱的代码。我的感受是,使用Hibernate比JDBC方式减少了80%的编程量。
现在我们有三个层了,可是每层之间的调用是怎样的呢?比如显示层的Struts需要调用一个业务类,就需要new一个业务类出来,然后使用;业务层需要调用持久层的类,也需要new一个持久层类出来用。通过这种new的方式互相调用就是软件开发中最糟糕设计的体现。简单的说,就是调用者依赖被调用者,它们之间形成了强耦合,如果我想在其他地方复用某个类,则这个类依赖的其他类也需要包含。程序就变得很混乱,每个类互相依赖互相调用,复用度极低。如果一个类做了修改,则依赖它的很多类都会受到牵连。
为此,出现Spring框架。
Spring的作用就是完全解耦类之间的依赖关系,一个类如果要依赖什么,那就是一个接口。至于如何实现这个接口,这都不重要了。只要拿到一个实现了这个接口的类,就可以轻松的通过xml配置文件把实现类注射到调用接口的那个类里。所有类之间的这种依赖关系就完全通过配置文件的方式替代了。所以Spring框架最核心的就是所谓的依赖注射和控制反转。
现在的结构是,Struts负责显示层,Hibernate负责持久层,Spring负责中间的业务层,这个结构是目前国内最流行的Java
Web应用程序架构了。另外,由于Spring使用的依赖注射以及AOP(面向方面编程),所以它的这种内部模式非常优秀,以至于Spring自己也实现了一个使用依赖注射的MVC框架,叫做Spring
MVC,同时为了很好的处理事物,Spring集成了Hibernate,使事物管理从Hibernate的持久层提升到了业务层,使用更加方便和强大。
Struts框架是2000年就开始起步了,到目前已经发展了5年,技术相当成熟,目前全球Java开发中Struts框架是显示层技术中当之无愧的王者。它拥有大量的用户群和很好的开发团队。这也是国内大部分Java软件公司对新进员工的基本要求。
0.4 你应该掌握的Java技术
当我们在技术线路中选择了Java,也就选择了你必须持续学习,经常关注最新的技术,了解它们,看是否适合你的需要,然后学习使用它们。
Java基础:
◆Java原理和使用,包括基本的语言、语法知识和API
◆JSP(Velocity)+Servlet,Java Web开发的基础
这方面可以关注Java开发基础专题。
◆WebLogic的原理、使用和配置
◆Tomcat:轻量的JavaWeb容器,和WebLogic功能类似,使用简单、方便、免费、开源,但不支持EJB
◆JBoss:类似于Tomcat,功能更强,支持EJB
这三种应用服务器至少掌握其中的一种是很必要的。
◆Struts、Spring、Hibernate
◆Tapestry:这是一个新的MVC框架,使用组件式开发,是显示层技术的发展趋势。
◆Flex和Laszlo:新的显示层技术,支持富客户端应用,是目前的较前沿的显示技术。
◆EJB :EJB的全称是Enterprise JavaBeans,是Java中的商业应用组件技术。
Java Web开发周边技术:
◆HTML、Javascript、CSS、XML、XSLT,这些是开发中经常使用到的,应该熟练掌握。
开发工具:
◆Dreamweaver、Eclipse或Jbuilder、PL/SQL
◆Oracle必须会用、SQLServer掌握、MySQL可以在自己学习时使用。DB2那种东西就不要学了,国内太少使用了。
软件工程:
◆可以理解UML设计和使用UML进行简单设计。
0.4 Spring生态系统
<img src="/blog7style/images/common/sg_trans.gif" real_src ="http://static7..cn/middle/002iiSaxzy700MPJoUud6&690" BORDER="0" ALT="" NAME="" WIDTH="738" HEIGHT="467"
TITLE="【Spring&Boot&开发笔记】0&SpringBoot&开篇" />
从这幅图中我们可以看出来Spring的整体架构,主要分为六大模块:
Core Container
核心部分分为4大块,spring-core, spring-beans, spring-context,
spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI和IoC功能。
Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression
language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression
language的用法。
AOP and instrumentation
Aop模块提供了面向切面编程的实现,和AspectJ集成。
Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。
Data Access/Integration
access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。
Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。
Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。
我们曾经在无数的书籍和文章中看到,EJB是J2EE的核心技术之一;而Rod
Johnson竟然宣称,绝大多数的J2EE应用根本不需要EJB。 
Johnson将会引领一种影响深远的潮流。但这潮流不是Spring和Hibernate,也不是IoC和AOP,甚至不是&轻量级架构&,而是一切实事求是的&循证架构&的工作方式。惟有掌握这种工作方式,你才能够真正自信满满地挺起胸膛说:&我选择的架构是适合应用需求的架构。& 
Rod Johnson认为,应该是基于实践的证据、来自历史项目或亲自试验的经验,而不是任何形式的偶像崇拜或者门户之见。Rod
Johnson给我传授了&循证&的工作方式&&那原本就应该是程序员的工作方式。&
没有最好的架构,只有最合适的架构。循证架构是《Expert One-on-One J2EE Development
without EJB》(Rod Johnson)一书中推崇的架构思路,用俺们的话说就是摸着石头过河,找最适合自己的架构。
计算机领域中的所有问题,都可以通过向上一层进行抽象封装来解决.这里的封装的本质概念,其实就是&映射&。
0.5 一切皆是映射
就好比通过的电子电路中的电平进行01逻辑映射,于是有了布尔代数,数字逻辑电路系统;
对01逻辑的进一步封装抽象成CPU指令集映射,诞生了汇编语言;
通过汇编语言的向上抽象一层编译解释器,于是有了pascal,fortran,C语言;
再对核心函数api进行封装形成开发包(Development Kit), 于是有了Java,C++ 。
当然这里这么说,不是那么准确,意思是这个意思。
从面向过程到面向对象,再到设计模式,架构设计,面向服务,各种软件理论五花八门,但万变不离其宗&&你要解决一个怎样的问题?你对这个世界的本质认知是怎样的?你的业务领域的逻辑问题,流程等等。
Booch:我对OO编程的目标从来就不是复用。相反,对我来说,对象提供了一种处理复杂性的方式。这个问题可以追溯到亚里士多德:您把这个世界视为过程还是对象?在OO兴起运动之前,编程以过程为中心--例如结构化设计方法。然而,系统已经到达了超越其处理能力的复杂性极点。有了对象,我们能够通过提升抽象级别来构建更大的、更复杂的系统--我认为,这才是面向对象编程运动的真正胜利。
从这幅图中我们可以看出来Spring的整体架构,主要分为六大模块:
Core Container
核心部分分为4大块,spring-core, spring-beans, spring-context,
spring-expression. 其中core和bean是整个框架的核心,提供了基础的DI和IoC功能。
Context建立在core和beans模块之上,提供一种类似JNDI且以框架的方式来操作对象的方式。Context模块从beans模块继承它的功能同时增加了国际化支持,如资源绑定等,同时,Context模块也支持JavaEE功能,如EJB,JMX和基本的远程调用。ApplicationContext接口是context模块的焦点。expression是一种很强大的expression
language,支持在运行时查询和操作对象的属性,我们会在后面的文章中举些例子来说明spring expression
language的用法。
AOP and instrumentation
Aop模块提供了面向切面编程的实现,和AspectJ集成。
Messaging是spring4新增加的模块,包含了一部分主要的基于message的应用的实现。
Data Access/Integration
access顾名思义,是spring对数据层提供的支持,是功能比较丰富的模块。提供了包括JDBC,事物,ORM,JMS等一系列实现。
Web模块主要提供面向web的一些实现,例如多文件上传,servlet监听器以及spring mvc方面的支持。
Test模块主要是针对spring的各个模块做各种各样的测试,包括单元测试、集成测试等等。
Spring Boot的介绍,我们将在下一章中继续。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 spring boot 微架构 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信