excel – Get span value with no class name using VBA – Stack Overflow

Оглавление

(1) @prifileмодификация

@Configuration@Profile("prod")publicclassJndiDataConfig{@Bean(destroyMethod="")public DataSource dataSource()throws Exception {
        Context ctx =newInitialContext();return(DataSource) ctx.lookup("java:comp/env/jdbc/datasource");}}

(1) активировать профиль в режиме файла конфигурации

Определите, какая среда в настоящее время используется.Значение среды здесь соответствует значению after-in application-prod.properties, которое согласовано SpringBoot.Добавьте следующую конфигурацию в resources / application.properties. Следует отметить, что значение spring.profiles.active должно быть таким же, как и@ProfileМетки в аннотациях остаются неизменными.

spring.profiles.active=dev 

Кроме того, то же самое можно настроить и в resources / application.yml, эффект такой же:

spring:
  profiles:
    active: dev

(2) @profileспособ модификации

@ConfigurationpublicclassAppConfig{@Bean("dataSource")@Profile("dev")public DataSource standaloneDataSource(){returnnewEmbeddedDatabaseBuilder().setType(EmbeddedDatabaseType.HSQL).addScript("classpath:com/bank/config/sql/schema.sql").addScript("classpath:com/bank/config/sql/test-data.sql").build();}@Bean("dataSource")@Profile("prod")public DataSource jndiDataSource()throws Exception {
        Context ctx =newInitialContext();return(DataSource) ctx.lookup("java:comp/env/jdbc/datasource");}}

(2) активировать профиль из командной строки

При запуске после упаковки добавьте параметры:

java -jar spring-boot-02-config-0.0.1-SNAPSHOT.jar   --spring.profiles.active=dev;

(3)@profileаннотация модификации

@ProfileАннотации могут быть определены поверх других аннотаций для создания пользовательских аннотаций сцены. Это создает@DevАннотация, аннотация может идентифицировать bean-компонент, используемый в@DevЭта сцена. Больше не нужно использовать в будущем@Profile(“dev”)Таким образом код можно упростить.

Spring Security Login

Let’s look at the login workflow:

Let’s take a quick look at the workflow:

Инструкции по аннотации @Profile

@profileРоль аннотации состоит в том, чтобы указать класс или метод, которые будут действовать в определенной среде профиля, любой@Componentили же@ConfigurationАннотированные классы могут использоваться@Profileаннотация.

Требования:

  • @Componentили же@ConfigurationАннотированные классы могут использоваться@profile
  • @ProfileНеобходимо указать строку, среду, в которой соглашение вступает в силу

Файл конфигурации ресурса

В дополнение к application.properties файл конфигурации ресурсов Springboot также может иметь соответствующий файл ресурсов application- {profile} .properties.Предположим, что рабочая среда приложения: dev, test, prod

Затем мы можем добавить 4 файла конфигурации:

  • applcation.properties-public конфигурация
  • application-dev.properties-конфигурация среды разработки
  • конфигурация среды application-test.properties-test
  • конфигурация среды application-prod.properties-production

Для активации профиля в файле applcation.properties также можно активировать различные файлы конфигурации свойств:spring.profiles.active = test

Default Security Login Page

By default, Spring security will show the default login page. If you don’t do any customization or configuration, you might see a similar login page on your application.

Most application will like to have their own customize login page. Spring security provides a flexible option to configure custom login page for our application. The next section will cover the customization and configuration of the login page.

Читайте также  Как нарисовать стикер: советы

Активация профиля

При фактическом использовании в аннотациях указано несколько сред, таких как prod, test и qa. Какой профиль используется во время выполнения, контролируется spring.profiles.active. Ниже описаны два метода: режим файла конфигурации и режим командной строки.

Многопрофильные файлы ресурсов

В дополнение к аннотации @profile вы можете указать, в какую среду внедряются определенные методы и классы. Изоляция среды Springboot также может использовать несколько файлов ресурсов для настройки некоторых параметров.

Примеры использования

Ниже приведен пример нескольких файлов конфигурации ресурсов, которые в основном различают среду разработки dev и онлайн-среду prod.

Создайте новый интерфейс в Sound.java на уровне контроллера, чтобы возвращать информацию в файле конфигурации: имя и локальный.

@Controller@RequestMapping("/sound")publicclassSound{@Value("${com.name}")private String name;@Value("${com.location}")private String location;@RequestMapping("hello")@ResponseBodypublic String sound1(){
        System.out.println(name  "hello Spring Boot, " location);return name  ",hello Spring Boot! " location;}}

Содержимое файла application.properties выглядит следующим образом:

## Свойства активации файла конфигурации для нескольких сред
spring.profiles.active=prod

Содержимое файла application-dev.properties выглядит следующим образом:

# Сервисный порт
server.port=1111

 # Вы можете определить некоторые используемые вами свойства, а затем передать@Value("$ {название свойства}}")Аннотация для загрузки соответствующих свойств конфигурации
com.name=DEV
com.location=Beijing

Содержимое файла application-prod.properties выглядит следующим образом:

server.port=2222

 # Вы можете определить некоторые используемые вами свойства, а затем передать@Value("$ {название свойства}}")Аннотация для загрузки соответствующих свойств конфигурации
com.name=Prod
com.location=Hubei

1. Login Controller

With the above configuration, we also need the login controller to maps GET /login to our controller. Our controller will return the custom login page. Here is the login page controller for your reference:

package com.javadevjournal.web.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class LoginPageController {

    @GetMapping("/login")
    public String login(){
        return "account/login";
    }
}

There is nothing special about the spring security login controller.

2. Login Page

We need to create a login page as per our design. Our controller will return this page. I am using Thymeleaf to build the page, but you can use any other templating engine of your choice.

1. Landing Page for Successful Authentication

After the successful authentication, we want to redirect customer to the home screen. Spring security provide flexible way to do this.

Читайте также  Меня взломали вконтакте, что делать?

Test Login Process

It’s time to test the login process. Build and run the application. Once the application start, we will run the following test cases.

  1. Directly access secure URL (e.g. any URL with pattern /account/**), Spring security will force the login by redirecting us to /login page.
  2. Acess the non-secure URL. We should be able to access those with no issue.
  3. try login with a valid and invalid credentials.

Let’s look at each test case:

Spring Security Login Workflow

We will enhance our login process in this series (Will add remember me service etc.) but I like to revisit the login workflow

Let’s talk about the above workflow:

Get span value with no class name using vba

If you actually mean the “High” then you can use a CSS selector.

Debug.Print html.querySelector("span[data-toggle=dropdown]").innerText

CSS query using selector:

css selector

This applies a CSS selector of span[data-toggle=dropdown], which is element(s) with span tag having attribute data-toggle with value of dropdown.
I have used querySelector, which only returns the first match, as your HTML shown only has one matching element.

If you have more than one matching element then you will need the querySelectorAll method, which returns a nodeList of matching elements, and then index into that 0-based nodeList using the appropriate index e.g.

html.querySelectorAll("span[data-toggle=dropdown]").item(0).innerText

You would traverse the .Length of the nodeList to get all items e.g.

Dim aNodeList As Object, i As Long, erow As Long, count As Long
Set aNodeList  =  html.querySelectorAll("span[data-toggle=dropdown]")
For i = 0 To aNodeList.Length -1
    erow = Sheets("Exec").Cells(Rows.count, 1).End(xlUp).Offset(1, 0).Row
    Sheets("Exec").Cells(erow, 1)  =  aNodeList.item(i).innerText
    count = count   1
Next i

Summary

In this article, we discuss the spring security login, we discuss the distinct feature of the login process. To summarize we discuss following points in this post.

  1. How Spring security login process works?
  2. Configure and use custom login page in spring security.
  3. How to configure the success and failure process for our application?
  4. In the last section, we covered the spring security login workflow.

The source code for this article is available on the GitHub.

Понравилась статья? Поделиться с друзьями:
ТВОЙ ВК
Добавить комментарий