1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/huwenwen-auto-inject-resource

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Автоматическая загрузка ресурсов из системы прав доступа в базу данных

  • Применимая Java Web-система: необходимо спроектировать таблицу ресурсов так, чтобы можно было однозначно различать её по ресурсу + определённым вами полям.

  • Используйте уникальные поля для поиска родительского узла.

  • Если ваша система использует Spring MVC, вы можете использовать Spring.

Getting Start

  1. Конфигурация Maven:
<repositories>
    <repository>
        <id>wenwen</id>
        <url>https://wenwen.bintray.com/mvn-repo/</url>
    </repository>
</repositories>

<dependency>
    <groupId>com.github.huwenwen</groupId>
    <artifactId>auto-inject-resource</artifactId>
    <version>0.0.3</version>
</dependency>
  1. Добавление конфигурации:
<bean class="com.github.huwenwen.AutoInjectResource">
    <!-- 数据源 -->
    <property name="dataSource" ref="dataSource"/>
    <!-- @InjectResource所在的 package, можно быть несколько (разделять запятой), обычно это controller слой -->
    <property name="basePackages" value="com.wen.controller"/>
</bean>
  1. Ресурсы, которые необходимо автоматически сохранить в базе данных, должны иметь следующие методы:
@InjectResource(name="resourceName", url="/test/123" parentName="resourceParentName")
  1. Сохранение ресурсов в базе данных:
// инъекция
@Inject
private AutoInjectResource autoInjectResource;

// вызов метода
autoInjectResource.saveResource();

Использование документа

  1. Настройте имена таблиц и имена полей вашей собственной базы данных.

Первый способ: добавьте файл auto_inject_resource.properties в путь к классам. Пример файла:

# имя таблицы ресурсов
resource.table.name=m_resource

# имя столбца URL в таблице ресурсов
table.column.url=RESOURCE_STRING

# имя столбца имени в таблице ресурсов
table.column.name=RESOURCE_NAME

# имя столбца сортировки в таблице ресурсов
table.column.power=SORT_INDEX

# имя столбца уровня в таблице ресурсов
table.column.grade=GRADE

# имя столбца родительского узла в таблице ресурсов
table.column.parent=PARENT_ID

# источник значения столбца родительского узла
table.column.parent.source=RESOURCE_ID

Второй способ: используйте свойства Spring для внедрения:

<bean class="com.github.huwenwen.AutoInjectResource">
    <property name="tableName" value="m_resource"/>
    <property name="columnUrl" value="RESOURCE_STRING"/>
    <property name="columnName" value="RESOURCE_NAME"/>
    <property name="columnPower" value="SORT_INDEX"/>
    <property name="columnGrade" value="GRADE"/>
    <property name="columnParent" value="PARENT_ID"/>
    <property name="columnParentSource" value="RESOURCE_ID"/>
</bean>
  1. В @InjectResource customProps можно добавить некоторые пользовательские поля базы данных и соответствующие значения. customProps — это массив, значения которого имеют формат key:value, где key — это имя поля в таблице ресурсов, а value — значение этого поля.
@InjectResource(name = "resourceName", url="abc/123", parentName = "resourceParentName", customProps = {"key1:value1", "key2:value2"})
  1. Используйте ресурсы и другие уникальные поля для подтверждения:
<bean class="com.github.huwenwen.AutoInjectResource">
    <property name="otherConfirmUniqueColumns" value="column1,column2"/>
</bean>

Используйте (имя ресурса + column1 + column2), чтобы однозначно определить родительский узел и эту строку ресурса. Можно использовать один или несколько. Также можно не вводить, если не вводится, то по умолчанию используется [имя ресурса], чтобы однозначно различить родительский узел и этот ресурс. Можно ввести один или несколько раз. Или не вводить, тогда по умолчанию будет использоваться [имя ресурса] для однозначного определения родительского узла и этого ресурса. Если введено otherConfirmUniqueColumns, то ваши свойства @InjectResource parentOtherProps (можно не указывать, если нет родительского узла) и customProps также должны содержать эти поля. Например, если введено, то @InjectResource должен содержать parentOtherProps={"column1:value1, column2:value2"} (если нет родительского узла, можно не указывать) customProps={"column1:value1, column2:value2"}.

  1. По умолчанию вводятся customProps и parentOtherProps (key: поле таблицы ресурсов, value: значение поля):
<bean class="com.github.huwenwen.AutoInjectResource">
    <property name="defaultCustomProps">
        <map>
            <entry key="column1" value="value1"/>
            <entry key="column2" value="value2"/>
        </map>
    </property>
    <property name="defaultParentOtherProps">
        <map>
            <entry key="column1" value="value1"/>
            <entry key="column2" value="value2"/>
        </map>
    </property>
</bean>

Ввод глобально вступает в силу. Если вы хотите, чтобы определённый ресурс не вступил в силу, вы можете использовать @InjectResource (enableDefaultCustomProps = false, enableDefaultParentOtherProps = false).

  1. Принцип близости:

Глобальный ввод customProps и parentOtherProps и локальный ввод @InjectResource (customProps={}, parentOtherProps={}) имеют одинаковые ключи, локальные приоритеты выше.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/huwenwen-auto-inject-resource.git
git@api.gitlife.ru:oschina-mirror/huwenwen-auto-inject-resource.git
oschina-mirror
huwenwen-auto-inject-resource
huwenwen-auto-inject-resource
master