Для конфигурации весны на основе java вы можете использовать следующие
Использование ResourceHandlerRegistry , в котором хранятся регистрации обработчиков ресурсов для обслуживания статических ресурсов.
Дополнительная информация @ WebMvcConfigurerAdapter , который определяет методы обратного вызова для настройки конфигурации Java для Spring MVC с помощью @EnableWebMvc.
@EnableWebMvc
@Configurable
@ComponentScan("package.to.scan")
public class WebConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static_resource_path/*.jpg").addResourceLocations("server_destination_path");
}
“Когда в Риме, сделайте, как римляне делают”.
В то время как существует теоретически преимущество в использовании неподписанных значений, где применимый, потому что оно делает код более выразительным, это просто не сделано в C#. Я не уверен, почему разработчики первоначально не разработали интерфейсы для обработки uints
и сделайте тип CLS-совместимым, но теперь поезд оставил станцию.
Так как непротиворечивость обычно важна, я советовал бы брать трассу C# и использовать int
s.
При постепенном уменьшении числа со знаком со значением 0 это становится отрицательным, и можно легко протестировать на это. При постепенном уменьшении неподписанного числа со значением 0 оно теряет значимость и становится максимальным значением для типа - несколько более трудный проверить на.
Ваша вторая точка является самой важной. Обычно необходимо просто использовать int
так как это - довольно хорошее "вместилище" для целочисленных значений. Я только использовал бы uint
если Вам абсолютно нужна способность рассчитать выше, чем int
, но не используя дополнительную память long
требует (это не намного больше памяти, не будьте дешевыми :-p).
Я думаю, что тонкое использование uint по сравнению с интервалом вызовет сбивающий с толку с разработчиками, если это не было записано в инструкции разработчика для компании.
Если длина, например, не может быть меньше, чем нуль затем, это должно быть выражено ясно в бизнес-логике, таким образом, будущие разработчики могут прочитать код и знать истинное намерение.
Просто мои 2 цента.
Я укажу, что в C# можно включить /checked
проверять на арифметическое переполнение / потеря значимости, которая не является плохой идеей так или иначе. Если производительность имеет значение в критическом разделе, можно все еще использовать unchecked
избегать этого.
Для внутреннего кода (т.е. кода, на который не сошлются ни в каком interop поместье с другими языками) я голосую за использование неподписанного, когда ситуация гарантирует его, такой как length
переменные, как отмечалось ранее. Это - наряду с проверенной арифметикой - предоставляет еще одну сеть разработчикам, ловя тонкие ошибки ранее.
Другая точка в со знаком по сравнению с неподписанными дебатами - то, что некоторые программисты используют значения такой в качестве-1 для указания на ошибки, когда у них иначе не было бы значения. Я подписываюсь на представление, что каждая переменная должна иметь только одну цель, но если Вам - или коллеги, которых Вы кодируете с - нравится указывать, что ошибки таким образом, оставляя переменные подписанными дают Вам гибкость для добавления состояний ошибки позже.
Ваши две стороны являются положительными. Основная причина для предотвращения его бросает, все же. Кастинг делает их невероятно раздражающими для использования. Я пытался использовать unisigned переменные однажды, но я должен был опрыснуть броски абсолютно везде потому что методы платформы все целые числа со знаком использования. Поэтому каждый раз, когда Вы называете метод платформы, необходимо бросить.