boot

Android - How to receive the BOOT signal with an application installed on sdcard?

流过昼夜 提交于 2019-12-06 08:51:56
I need to start a notification service for an application when the device boots. I have implemented a BroadcastReceiver that listens to the boot signal in order to start the service. However, this works only if the application is not installed on sdcard (because the signal is received before the sdcard is mounted). Is there any solution to keep installing the application on sdcard and yet still receive that signal? Any hack for this? Let me know! Thanks! You could either: Register an account in the AccountManager and set up a sync service ( tutorial1 , tutorial2 ) -- Android will start your

SpringBoot FatJar启动原理

不想你离开。 提交于 2019-12-06 08:41:37
目录 SpringBoot FatJar启动原理 背景 储备知识 URLStreamHandler Archive 打包 SpringBoot启动 扩展 SpringBoot FatJar启动原理 背景 本文会探究下SpringBoot的启动原理。SpringBoot在打包的时候会将依赖包也打进最终的Jar,变成一个可运行的FatJar。也就是会形成一个Jar in Jar的结构。默认情况下,JDK提供的ClassLoader只能识别Jar中的class文件以及加载classpath下的其他jar包中的class文件。对于在jar包中的jar包是无法加载的。 储备知识 URLStreamHandler java中描述资源常使用URL。而URL有一个方法用于打开链接 java.net.URL#openConnection() 。由于URL用于表达各种各样的资源,打开资源的具体动作由 java.net.URLStreamHandler 这个类的子类来完成。根据不同的协议,会有不同的handler实现。而JDK内置了相当多的handler实现用于应对不同的协议。比如 jar 、 file 、 http 等等。URL内部有一个静态 HashTable 属性,用于保存已经被发现的协议和handler实例的映射。 获得 URLStreamHandler 有三种方法 实现

Springboot2.x整合Redis以及连接哨兵模式/集群模式

a 夏天 提交于 2019-12-06 08:29:59
依赖: <!--spirngboot版本为2.x--> <!-- 加载spring boot redis包,springboot2.0中直接使用jedis或者lettuce配置连接池,默认为lettuce连接池,这里使用jedis连接池 --> <!-- 加载spring boot redis包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <!-- 排除lettuce包,使用jedis代替--> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> application.properties配置 ##配置redis的连接信息 #spring.redis

Android系统Recovery工作原理之使用update.zip升级过程分析(九)---u...

社会主义新天地 提交于 2019-12-06 07:49:53
Android系统Recovery工作原理之使用update.zip升级过程分析(九)---updater-script脚本语法简介以及执行流程 目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制。 一、 update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法。 1. assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本。 2. show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数。主要用与显示UI上的进度条。 3. format(fs_type,partition_type,location):fs_type,文件系统类型,取值一般为“yaffs2”或“ext4”。Partition_type,分区类型,一般取值为“MTD”或则“EMMC”。主要用于格式化为指定的文件系统。事例如下:format(”yaffs2”,”MTD”,”system”)。 4. mount(fs_type,partition_type,location,mount_point):前两个参数同上,location要挂载的设备,mount_point挂载点。作用

Spring Boot + Vue 前后端分离开发,权限管理的一点思路

会有一股神秘感。 提交于 2019-12-06 07:44:33
转载于: https://www.cnblogs.com/lenve/p/10909830.html 在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面。 但是在前后端分离中,页面的跳转统统交给前端去做,后端只提供数据,这种时候,权限管理不能再按照之前的思路来。 首先要明确一点,前端是展示给用户看的,所有的菜单显示或者隐藏目的不是为了实现权限管理,而是为了给用户一个良好的体验,不能依靠前端隐藏控件来实现权限管理,即数据安全不能依靠前端。 这点就像普通的表单提交一样,前端做数据校验是为了提高效率,提高用户体验,后端才是真正的确保数据完整性。 所以,真正的数据安全管理是在后端实现的,后端在接口设计的过程中,就要确保每一个接口都是在满足某种权限的基础上才能访问,也就是说,不怕将后端数据接口地址暴露出来,即使暴露出来,只要你没有相应的角色,也是访问不了的。 前端为了良好的用户体验,需要将用户不能访问的接口或者菜单隐藏起来。 有人说,如果用户直接在地址拦输入某一个页面的路径,怎么办?此时,如果没有做任何额外的处理的话,用户确实可以通过直接输入某一个路径进入到系统中的某一个页面中,但是,不用担心数据泄露问题,因为没有相关的角色,就无法访问相关的接口。 但是

spring-boot war包部署(二)

删除回忆录丶 提交于 2019-12-06 06:54:05
环境 jdk 8 tomcat 8.5 sts 4.4.2 maven 3.6.1 背景 有时候,服务器已经有了,我们必须要使用 war 包进行部署,所以需要 spring boot 支持打包和部署成 war。 本节内容在上一节的基础上进行操作。 修改 pom.xml 由于需要将打包方式从 jar 修改为 war,所以需要修改 maven 默认的打包方式。 <packaging>war</packaging> 去除打包插件 因为我们直接部署到外部的服务器,不需要 spring boot 帮我们打包成 jar 来运行,所以去掉打包插件。 删除如下的内容: <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> 继承 SpringBootServletInitializer ServletContainerInitializer 接口,是 servlet 3.0 提供的一个接口,可以不使用 web.xml 配置的方式启动 spring。 SpringBootServletInitializer 类就是应用了这个特性,所以 spring boot

【springcloud】springcloud与springboot的版本对应关系

自古美人都是妖i 提交于 2019-12-06 06:44:43
官方网址:https://start.spring.io/actuator/info 更新时间:2019-12-01 spring-cloud: "Finchley.M2": "Spring Boot >=2.0.0.M3 and <2.0.0.M5", "Finchley.M3": "Spring Boot >=2.0.0.M5 and <=2.0.0.M5", "Finchley.M4": "Spring Boot >=2.0.0.M6 and <=2.0.0.M6", "Finchley.M5": "Spring Boot >=2.0.0.M7 and <=2.0.0.M7", "Finchley.M6": "Spring Boot >=2.0.0.RC1 and <=2.0.0.RC1", "Finchley.M7": "Spring Boot >=2.0.0.RC2 and <=2.0.0.RC2", "Finchley.M9": "Spring Boot >=2.0.0.RELEASE and <=2.0.0.RELEASE", "Finchley.RC1": "Spring Boot >=2.0.1.RELEASE and <2.0.2.RELEASE", "Finchley.RC2": "Spring Boot >=2.0.2.RELEASE and <2.0.3

Spring Boot集成Mybatis注解相关

喜你入骨 提交于 2019-12-06 06:35:18
mybatis3开始支持java注解,使用java注解可以替代xml配置文件,简化代码。下面来看一下怎么在spring boot中使用mybatis注解。 1 使用mybatis注解需要的配置。如下面的代码所示,使用@MapperScan来扫描注册mybatis数据库接口类,其中basePackages属性表明接口类所在的包,sqlSessionTemplateRef表明接口类使用的SqlSessionTemplate。如果项目需要配置两个数据库,@MapperScan也需要分别配置。 @Configuration @MapperScan(basePackages="com.boot.test.mapper",sqlSessionTemplateRef="sqlSessionTemplate") public class DatabaseConfig { @Bean @ConfigurationProperties(prefix = "test.datasource") public DataSource dataSource() { return DataSourceBuilder.create().build(); } @Bean public SqlSessionFactory sqlSessionFactory(DataSource dataSource) throws

spring-boot 环境搭建(一)

若如初见. 提交于 2019-12-06 05:32:57
环境 jdk 8 tomcat 8.5 sts 4.4.2 maven 3.6.1 新建 maven 项目 首先创建一个普通的 maven 项目。 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>jiangbo.demo</groupId> <artifactId>demo</artifactId> <version>1.0.0</version> </project> 定义 parent spring-boot-dependencies 定义很多的 jar 的版本信息。通过引入它,在使用 jar 的时候,可以不指定版本,默认由 spring-boot-dependencies 来管理。当然,也是可以覆盖的。而 spring-boot-starter-parent 继承于 spring-boot-dependencies

SpringBoot自动装配原理解析

試著忘記壹切 提交于 2019-12-06 05:14:50
要理解自动装配原理,首先要理解BeanDefinition的作用,在BeanDefinition里定义了一些属性,其实就是 将Bean的定义信息存储到这个BeanDefinition相应的属性中,后面对Bean的操作就直接对BeanDefinition进行 ,例如拿到这个BeanDefinition后,可以 根据里面的类名、构造函数、构造函数参数,使用反射进行对象创建,BeanDefinition是一个接口,是一个抽象的定义,实际使用的是其实现类,如 ChildBeanDefinition、RootBeanDefinition、GenericBeanDefinition等。 我们都知道@SpringBootApplication注解里面封装了@ComponentScan注解,这个注解默认情况下扫描main函数所在的包路径,把带有@Component, @Configuration, @Service, @Responsitory的类都加载到Spring 容器中,加载过程是怎么样的呢,在@SpringBootApplication注解上面有@EnableAutoConfiguration注解,在这个注解里面又一个很重要的注解,那就是@Import(AutoConfigurationImportSelector.Class), 这个注解的作用是加载META-INF/spring