spring手册相关知识
-
MongoDB--Spring Data MongoDB详细的操作手册(增删改查)关注我,可以获取最新知识、经典面试题以及微服务技术分享 &emsp;&emsp;在NoSQL盛行的时代,App很大可能会涉及到MongoDB数据库的使用,而也必须学会在Spring boot使用Spring Data连接MongoDB进行数据增删改查操作,如下为详细的操作手册。 1. 依赖 直接导入spring-data-mongodb包或者使用Spring Boot starter <dependencies> <!-- other dependency elements omitted --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artif
-
Spring Cloud Alibaba(4)---Nacos(注册中心)前言 有关Nacos客户端的搭建和Nacos的介绍在 Spring Cloud Alibaba(2)---Nacos概述 有讲到,所以这里不在陈述。因为是要实现注册中心,所以一定是要有多个微服务, 上一篇博客 RestTemplate微服务项目 已经搭建好一个脚手架,这篇是在它的基础上添加Spring Cloud Alibaba框架和Nacos组件。 一、概述 1、没有服务注册中心 正常逻辑如果没有注册服务发现中心的话,订单服务如何去调取商品服务呢? 我们可以将服务调用 域名 和 端口号 写死到代码或配置文件中,然后通过HTTP请求,这
-
花式玩 Spring Boot!过滤器竟有 N 种注册方式!松哥手把手教你要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三种方式! 其实本来是想和大家聊 Spring Security 过滤器链的问题的,结果看源码看着看着就跑题了,索性就先和大家聊一聊 Spring Boot 中注册过滤器的三种方式,算是给 后面的 Spring Security 打一点基础。 1.@WebFilter 通过 @WebFilter 注解来标记一个过滤器,这种方式相信大家很容易想到。这是将 Servlet 中的那一套东西直接拿到 Spring Boot
-
TypeScript中文手册TypeScript Handbook(中文版)TypeScript 2.1 正式发布!TypeScript是Microsoft公司注册商标。TypeScript具有类型系统,且是JavaScript的超集。 它可以编译成普通的JavaScript代码。 TypeScript支持任意浏览器,任意环境,任意系统并且是开源的。TypeScript目前还在积极的开发完善之中,不断地会有新的特性加入进来。 因此本手册也会紧随官方的每个commit,不断地更新新的章节以及修改措词不妥之处。如果你对TypeScript一见钟情,可以订阅and star本手册,及时了解ECMAScript 2015以及2016里新的原生特性,并借助TypeScript提前掌握使用它们的方式! 如果你对TypeScript的爱愈发浓烈,可以与楼主一起边翻译边学习,PRs Welcome!!! 在相关链接的末尾可以找到本手册的Github地址。目录快速上手ASP.NET CoreASP.NET 4GulpKnockout.jsRe
spring手册相关课程
spring手册相关教程
- 4.4 注册数据源组件 多个数据源的情况下, 我们需要通过配置类,将数据源注册为组件放入 Spring 容器中。实例:/** * 数据源配置类 */@Configuration//标注为配置类public class DataSourceConfig { /** * 数据源1 */ @Bean//返回值注册为组件 @ConfigurationProperties("spring.datasource.db1")//使用spring.datasource.db1作为前缀的配置 public DataSource db1() { return DataSourceBuilder.create().build(); } /** * 数据源2 */ @Bean//返回值注册为组件 @ConfigurationProperties("spring.datasource.db2")//使用spring.datasource.db2作为前缀的配置 public DataSource db2() { return DataSourceBuilder.create().build(); }}通过这个配置类, Spring 容器中就有两个数据源组件,这两个组件分别采用 spring.datasource.db1 和 spring.datasource.db2 开头的配置信息。所以通过这两个组件,就能分别操作 MySQL 数据源 1 和 SQL Sever 数据源 2 。
- 4.1 注册 Broadcast Receiver 是四大组件中唯一一个支持动态注册的组件,我们可以在代码中通过Context.registerReceiver()方法进行注册:IntentFilter filter = new IntentFilter();intentFilter.addAction(getPackageName()+"com.emercy.CUSTOM_RECEIVER");MyReceiver myReceiver = new MyReceiver();registerReceiver(myReceiver, filter);同时,也支持类似 Activity、Service 的静态注册方式,在 AndroidManifest.xml 中添加以下注册代码:<receiver android:name=".MyBroadcastReceiver"> <intent-filter> <action android:name="com.emercy.CUSTOM_RECEIVER" /> </intent-filter></receiver>
- 3. Spring 的发展 随着 Spring 的流行,Spring 团队也深感责任重大。Spring 团队对 Spring 的优化工作也从未停歇,从 Spring1.x 到现在的 Spring5.x,每一个版本号都是进化的脚印。最开始的时候,Spring 只支持基于 XML 的配置,后来又陆续增加了对注解配置、Java 类配置的支持。但是无论怎么变换,都需要开发人员手工去配置,而这些配置往往千篇一律,令人乏味。我们驾驶汽车,默认都是车窗关闭、空调关闭、仪表盘开启这样的设置。如果每次进入汽车,都要手工逐一设置一遍,其实完全没有必要。同理,既然大多数人开发 Spring 应用,都有默认的习惯。那何不直接提供默认配置,项目启动时自动采用默认配置,只有当需要个性化功能时,再去手工配置。所以,在 2014 年,一个叫 Spring Boot 的框架,就这么出现了。
- 1. 注册 Gem 首先我们需要注册一个https://rubygems.org帐号。注册完成之后,您就拥有了属于自己的 RubyGems账号,别人就可以在你的主页上看到你发布的 Gem。
- 4.7 开发 Spring Security 配置类 现在,我们就需要将用户、权限等信息通过配置类告知 Spring Security 了。4.7.1 定义配置类定义 Spring Security 配置类,通过注解 @EnableWebSecurity 开启安全管理功能。实例:@Configuration@EnableWebSecurity // 开启安全管理public class SecurityConfig { @Autowired private SecurityService securityService;}4.7.2 注册密码加密组件Spring Security 提供了很多种密码加密组件,我们使用官方推荐的 BCryptPasswordEncoder ,直接注册为 Bean 即可。我们之前在数据库中预定义的密码字符串即为 123 加密后的结果。 Spring Security 在验证密码时,会自动调用注册的加密组件,将用户输入的密码加密后再与数据库密码比对。实例: @Bean PasswordEncoder passwordEncoder() { return new BCryptPasswordEncoder(); } public static void main(String[] args) { //输出 $2a$10$kLQpA8S1z0KdgR3Cr6jJJ.R.QsIT7nrCdAfsF4Of84ZBX2lvgtbE. System.out.println(new BCryptPasswordEncoder().encode("123")); }4.7.3 将用户密码及权限告知 Spring Security通过注册 UserDetailsService 类型的组件,组件中设置用户密码及权限信息即可。实例: @Bean public UserDetailsService userDetailsService() { return username -> { List<UserDo> users = securityService.getUserByUsername(username); if (users == null || users.size() == 0) { throw new UsernameNotFoundException("用户名错误"); } String password = users.get(0).getPassword(); List<String> apis = securityService.getApisByUsername(username); // 将用户名username、密码password、对应权限列表apis放入组件 return User.withUsername(username).password(password).authorities(apis.toArray(new String[apis.size()])) .build(); }; }4.7.4 设置访问路径需要的权限信息同样,我们通过注册组件,将访问路径需要的权限信息告知 Spring Security 。实例: @Bean public WebSecurityConfigurerAdapter webSecurityConfigurerAdapter() { return new WebSecurityConfigurerAdapter() { @Override public void configure(HttpSecurity httpSecurity) throws Exception { // 开启跨域支持 httpSecurity.cors(); // 从数据库中获取权限列表 List<String> paths = securityService.getApiPaths(); for (String path : paths) { /* 对/xxx/**路径的访问,需要具备xxx权限 例如访问 /addGoods,需要具备addGoods权限 */ httpSecurity.authorizeRequests().antMatchers("/" + path + "/**").hasAuthority(path); } // 未登录时自动跳转/notLogin httpSecurity.authorizeRequests().and().formLogin().loginPage("/notLogin") // 登录处理路径、用户名、密码 .loginProcessingUrl("/login").usernameParameter("username").passwordParameter("password") .permitAll() // 登录成功处理 .successHandler(new AuthenticationSuccessHandler() { @Override public void onAuthenticationSuccess(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Authentication authentication) throws IOException, ServletException { httpServletResponse.setContentType("application/json;charset=utf-8"); ResultBo result = new ResultBo<>(); ObjectMapper mapper = new ObjectMapper(); PrintWriter out = httpServletResponse.getWriter(); out.write(mapper.writeValueAsString(result)); out.close(); } }) // 登录失败处理 .failureHandler(new AuthenticationFailureHandler() { @Override public void onAuthenticationFailure(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, AuthenticationException e) throws IOException, ServletException { httpServletResponse.setContentType("application/json;charset=utf-8"); ResultBo result = new ResultBo<>(new Exception("登录失败")); ObjectMapper mapper = new ObjectMapper(); PrintWriter out = httpServletResponse.getWriter(); out.write(mapper.writeValueAsString(result)); out.flush(); out.close(); } }); // 禁用csrf(跨站请求伪造) httpSecurity.authorizeRequests().and().csrf().disable(); } }; }按上面的设计,当用户发起访问时:未登录的访问会自动跳转到/notLogin 访问路径。通过 /login 访问路径可以发起登录请求,用户名和密码参数名分别为 username 和 password 。登录成功或失败会返回 ResultBo 序列化后的 JSON 字符串,包含登录成功或失败信息。访问 /xxx 形式的路径,需要具备 xxx 权限。用户所具备的权限已经通过上面的 UserDetailsService 组件告知 Spring Security 了。
- 6. Spring Boot 的学习基础 Spring Boot 非常好用,但是并不是 0 基础就可以直接上手的。Java 语言基础是必备的,这个不必赘述。在学习 Spring Boot 之前,最好是已经对 Spring 及 Spring MVC 框架有一定的了解。Spring Boot 是一个快速开发框架,其技术基础几乎全部来源自 Spring 。所以本系列教程的学习基础,是 Java 、 Spring 及 Spring MVC 。其中 Spring MVC 是 Spring 大家庭的非常重要的一员,所以此处单独拿出来强调下。
spring手册相关搜索
-
s line
safari浏览器
samba
SAMP
samplerate
sandbox
sanitize
saper
sas
sass
save
smarty模板
smil
smtp
snapshot
snd
snmptrap
soap
soapclient
soap协议