首页
学习
活动
专区
工具
TVP
发布

java大数据

专栏作者
627
文章
443566
阅读量
29
订阅数
SpringBoot的重要性
1)SpringBoot的重要性。马克-to-win@马克java社区:SpringBoot的意义在于它继承了Spring的过去优点,ioc,aop,springmvc,而且快速启动服务器,快速开发单个微服务。最大的重要性是:springcloud是一个基于springboot实现的一系 列框架的集合,用来提供全局的服务治理方案。springcloud要基于springboot来实现,离不开springboot。
马克java社区
2021-06-24
4220
Spring当中aop:scoped-proxy 的用法
当把生命周期短的bean(比如下例中的MyBean)注入到生命周期长的bean(比如下例中的SingletonBean)时,我们必须做特殊处理,比如加<aop:scoped-proxy>来修饰短生命周期的bean。为什么?其实也好理解。比如下例中的生命周期长的bean(SingletonBean)的类型是Singleton,还没有用户访问时,在最初的时刻就建立了,而且只建立一次。这时它的一个属性myBean却要急着指向另外一个session类型的bean(com.MyBean),而com.MyBean的生命周期短(只有当有用户访问时,它才被生成)。现在处于初始阶段,还没有用户上网呢,所以com.MyBean的真正对象还没有生成呢。所以<aop:scoped-proxy>的意思就是让myBean这个属性指向com.MyBean的一个代理对象。(该代理对象拥有和com.MyBean完全相同的public接口。调用代理对象方法时,代理对象会从Session范围内获取真正的com.MyBean对象,调用其方法)。下例中如果去除<aop:scoped-proxy /> 会报以下的错误:Error creating bean with name 'myBean': Scope 'session' is not active for the current thread; consider defining a scoped proxy for this bean,注意在做以下实验时,要导入包cglib-nodep-2.1_3.jar。
马克java社区
2021-05-20
4110
Spring事务当中propagation="REQUIRED"和PROPAGATION="REQUIRES_NEW"的区别
3.propagation="REQUIRED"和PROPAGATION="REQUIRES_NEW"的区别
马克java社区
2021-05-20
1.1K0
Spring的transaction-manager的用法
<beans xmlns="http://www.springframework.org/schema/beans"
马克java社区
2021-05-20
3660
Aop的第一种配置方法:aop:advisor
advice-ref说明切别人的程序是什么,advice的英文翻译是“通知”,意思是主业务程序执行到某个方法之前之后发出的通知。pointcut-ref说明被切的业务主程序是什么。
马克java社区
2021-05-19
7790
SpringMVC是如何处置线程安全
一般情况下,@Controller是单例的,和Servlet那时是一样的,参见我的Servlet的第二章处理线程安全的问题。
马克java社区
2021-05-19
3310
给一个SpringMVC的helloworld例子
步骤和Servlet一样:做一个普通的dynamic web project:把所有的jar包直接拷贝到目录中就行了。不用再设置路径了。
马克java社区
2019-09-27
2970
Spring中AOP面向切面编程的概念到底是什么?
1.AOP(面向切面的编程) 每当执行某个方法时,按照配置文件,在它前或后,执行另外一段程序,就像切了一刀一样。aop的概念有点儿像filter。但过滤器只能切servlet或jsp,html,但aop可以切普通的类。 做 以下实验时,要先导几个包。aopalliance-1.0.jRELEASE.jar,aspectjweaver-1.6.8.jar, aspectjrt-1.6.8.jar,spring-aop-3.0.5.RELEASE.jar。配置文件头也要加几句话(有关AOP的)。
马克java社区
2019-09-27
7050
spring中通过配置文件注入的方法
2.通过配置文件注入的方法 上面的注入方法是通过@Service的注解方法。类似的还有@Repository、@Component、@Constroller,功能大体一样,就是实例化以后放到Spring容器当中接受管理。当然你肯定乐意在service类前放@Service而不愿意放@Repository而故意迷惑自己。另外注意,缺省的情况都是单态的。(省我们事了,但要注意线程安全)。除了注解注入,我们还有配置文件的方法来注入。相比注解的方法来讲,配置文件的方法比较集中,但缺乏灵活性。怎么讲呢?a处和b处想按不同的方式来处理?不行。因为统一一个地方处理。a和b必须统一,所以缺少了灵活性。 例 1.2 package com; import javax.annotation.Resource; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.support.RequestContextUtils; import service.interfac.ILoginService; @Controller public class HelloWorldController { private ILoginService loginServic; @RequestMapping("/helloa") public ModelAndView helloWorld(HttpServletRequest request, HttpServletResponse response, HttpSession sesssion) { ServletContext sc=RequestContextUtils.getWebApplicationContext(request).getServletContext(); WebApplicationContext wac=WebApplicationContextUtils.getRequiredWebApplicationContext(sc); ILoginService loginServic=(ILoginService)wac.getBean("loginService"); loginServic.login(); System.out.println("after loginServic.login()"); return new ModelAndView("/helloq", "message", "你好"); } }
马克java社区
2019-09-27
8200
Spring的IOC控制反转和DI依赖注入到底有什么意义,到底有什么好处,概念怎么理解
1.IOC和DI概念意义和实现 : 由于控制反转和依赖注入的概念比较难,我们拿下面这个例子来讲解概念。我们过去在学mvc时,都是在controller里实例化出一个service的对象,之后再使用它。实例化对象的控制权在我们手里(所谓正序)。现在当我们应用spring容器时,实例化的控制权不在我们手里了,控制权反转了,控制权利跑到spring容器手里了。@Service的意思就是把实现这个接口类型的类实例化以后放在spring容器当中,供将来使用(不懂就看我的例子)。(注意,如果有两个类都实现了接口,而且
马克java社区
2019-09-27
2.6K1
SpringMVC,Mybatis结合事务Transaction
5.SpringMVC,Mybatis结合事务Transaction 前面讲过,Spring事务就是针对某一个方法,在头和尾环绕上一对儿事务的开始和结束语句段,方法里针对数据库的操作就成为了一个事务。具体怎么样访问数据库,是JDBC,还是Spring JDBC还是Mybatis,Spring的事务并不关心。所以mybatis这里的事务的配置和实验和前面的Spring JDBC是一样的。 例 1.5 package com; import java.io.IOException; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloWorldController { @Resource private ILoginService loginServic; @RequestMapping("/helloa") public void helloWorld(HttpServletResponse res) throws IOException { loginServic.login(); res.sendRedirect("index.jsp"); } } package com; import javax.annotation.Resource; import org.springframework.stereotype.Service; import com.mapper.RegisterMapper; @Service public class LoginServiceImpl implements ILoginService { @Resource private RegisterMapper registerMapper; public void login() { updateRegister(); System.out.println("successfully update 1"); insertRegisterWrong();//duplicate key System.out.println("successfully insert 2"); } public void updateRegister() { Register registerU = new Register(); registerU.setId(52); registerU.setName("bbb2"); registerU.setAge(80); System.out.println("registerMapper.updateByPrimaryKey 的返回值是 "+registerMapper.updateByPrimaryKey(registerU)); } public void insertRegisterWrong() { Register register = new Register(); register.setAge(80); register.setId(50); register.setName("aaa"); registerMapper.insert(register); } } 更多请见:https://blog.csdn.net/qq_44639795/article/details/100173346
马克java社区
2019-09-27
5000
SpringMVC和Mybatis的整合的工作原理
在做这个项目之前,我们的前提条件是:你已经有一个能运行的SpringMVC的最简单的项目了。请同学们参考我的SpringMVC那章。做这个项目关键在于导包,请参考下图:
马克java社区
2019-09-25
4860
Eureca Ribbon分布负载均衡的helloworld例子
本节我们还是拿第一节helloworld的例子,稍加改进,即可。思路就是把provider在两个不同的端口,甚至不同的机器上,分别运行。而consumer上加上Ribbon特性即可。(参考我的项目目录:ribbon) 1)在provider的代码上加上一句:System.out.println("I do");这样当consumer调用哪一个provider时,你可以知道反馈。 @RequestMapping("/acquire") public String acquire() { System.out.println("I do"); return "Hello 马克-to-win acquire"; } 2)运行provider时,第一次像原来一样运行。第二次运行时把端口从9090变成9092。其他都不变。 3)在consumer的项目中,加上。 <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-ribbon</artifactId> </dependency> 4)运行方法和第一节一样
马克java社区
2019-08-13
3140
springCloud当中Eureca消费者Consumer的部署
3.消费者的部署: 做个普通的maven project,quickstart archetype。改成jdk.8。过去我们都是: @Service public class LoginServiceImpl2 implements ILoginService { public void login() { System.out.println("LoginServiceImpl2"); } } 我们的注解过去都写在类前面,而这次,如下图,注解写在了方法上,意味着,告诉S
马克java社区
2019-08-12
3480
@EnableDiscoveryClient和@EnableEurekaClient的区别?
@EnableDiscoveryClient和@EnableEurekaClient的区别?在前面的服务提供者的例子中我们是用@EnableEurekaClient,其实二者的功能是一样的。但是如果选用的是eureka服务器,那么就推荐@EnableEurekaClient,如果是其他的注册中心,那么推荐使用@EnableDiscoveryClient。
马克java社区
2019-08-09
2.2K0
springCloud当中Eureca服务提供者Provider的部署
服务提供者的部署: 做个普通的maven project,quickstart archetype。改成jdk.8。运行程序后会出现:EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE NOT. RENEWALS ARE LESSER THAN THRESHOLD AND HENCE THE INSTANCES ARE NOT BEING EXPIRED JUST TO BE SAFE.这个提示跟保护模式相关,和我们的Helloworld例子无关,这里就略过了。当然,可以在前面的server配置文件处,把它关了,enable-self-preservation:false。另外,Eureka本身是一个基于REST的服务,所以你会发现大家通常的服务或消费微服务,都做成是基于REST的服务。 pom.xml: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com</groupId> <artifactId>EurecaMaven2</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>EurecaMaven2</name> <url>http://maven.apache.org</url> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.4.2.RELEASE</version> <relativePath /> </parent> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <java.version>1.8</java.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>Camden.SR2</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka</artifactId> </dependency> </dependencies> </project>
马克java社区
2019-08-02
4120
springcloud和springboot是什么关系?
springcloud和springboot是什么关系? springboot可以快速开发单个微服务。springcloud是一个基于springboot实现的一系列 框架的集合,用来提供全局的服务治理方案。springcloud要基于springboot来实现,离不开springboot。
马克java社区
2019-07-30
2.3K0
SpringBoot当中如何整合mybatis和注入
6.整合mybatis和注入: 根据第3部分的helloworld例子,用那个项目做底子。pom.xml只需要加入mybatis和mysql的部分,另外注意版本要比helloworld的高,比如要1.5.9版本以上。 参见我的项目bootMybatis1。
马克java社区
2019-07-27
2770
SpringBoot当中如何整合动态html模板:Thymeleaf
4.整合动态html模板:Thymeleaf: 光是静态html还不足够,必须html还能显示动态成分,这时我们考虑使用thymeleaf,就能完全达到springmvc的水平了,官方推荐thymeleaf。继续在上一部分的项目中,在src/main目录下,添加resources/templates/result.html:(参考目录下:bootThymeleaf) 例4.1: 1)首先在pom.xml中添加: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> 注意:即使导了上面的包,也没有办法访问到resources根目录下的html。至于templates目录下的html,直接或sendRedirect都不能访问。唯有用下面的方法访问。 package com.SpringbootMaven; import java.io.IOException; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; @Controller @SpringBootApplication public class App { @RequestMapping("/hello") public String myhome(HttpServletResponse res,HttpSession session) throws IOException { System.out.println("spring boot springMvc 马克-to-win!"); session.setAttribute("user","马克-to-win 马克java社区创始人"); return "result"; /*下列不能再用了,在Thymeleaf框架中,sendRedirect不能跳到templates目录里的html*/ // res.sendRedirect("result.html"); } public static void main(String[] args) throws Exception { SpringApplication.run(App.class, args); } } index.html: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> </head> <body> index1 <a href="/hello.do">test SpringMvc</a> </body> </html>
马克java社区
2019-07-27
1.8K0
maven版SpringBoot的Hello World
1)新建maven项目,package方式为jar. 用archetype quick start.参考我视频目录下的SpringbootMaven项目。
马克java社区
2019-07-25
6770
点击加载更多
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档