VirtualHost позволяет использовать как www, так и не-www

Я искал способ сделать это сам, не добавляя дополнительной зависимости от пути к классам. После некоторого исследования я обнаружил, что он доступен , если у вас есть общий супертип. Это было хорошо для меня, поскольку я работал с слоем DAO с супертипом общего уровня. Если это соответствует вашему сценарию, то это самый аккуратный подход IMHO.

Большинство дженериков используют случаи, с которыми я столкнулся, имеют какой-то общий супертип, например. List для ArrayList или GenericDAO для DAO и т. д.

Pure Java solution

Статья Доступ к родовым типам во время выполнения в Java объясняет, как вы можете это сделать, используя чистую Java.

Spring solution

В моем проекте использовалась Spring , которая еще лучше поскольку Spring имеет удобный метод утилиты для поиска типа. Это лучший подход для меня, поскольку он выглядит аккуратно. Я думаю, если бы вы не использовали Spring, вы могли бы написать свой собственный метод полезности.

import org.springframework.core.GenericTypeResolver;

public abstract class AbstractHibernateDao implements DataAccessObject
{

    @Autowired
    private SessionFactory sessionFactory;

    private final Class genericType;

    private final String RECORD_COUNT_HQL;
    private final String FIND_ALL_HQL;

    @SuppressWarnings("unchecked")
    public AbstractHibernateDao()
    {
        this.genericType = (Class) GenericTypeResolver.resolveTypeArgument(getClass(), AbstractHibernateDao.class);
        this.RECORD_COUNT_HQL = "select count(*) from " + this.genericType.getName();
        this.FIND_ALL_HQL = "from " + this.genericType.getName() + " t ";
    }

0
задан Red Virus 14 July 2018 в 01:06
поделиться

1 ответ

Используйте как ServerName, так и ServerAlias

. Вот что я использую для своих шаблонов -

Для не SSL -

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
        AllowOverride All
        Require all granted
    </directory>
  ErrorLog ${APACHE_LOG_DIR}/example.com-error.log
  CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined
</VirtualHost>

И с SSL из LetsEncrypt -

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  RewriteEngine on
  RewriteRule ^/(.*)$ https://www.example.com/$1 [R,L]
</VirtualHost>
<VirtualHost 10.0.2.5:443>
    ServerName example.com
    ServerAlias www.example.com
    ServerAdmin webmaster@example.com
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem
    SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown
    CustomLog ${APACHE_LOG_DIR}/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    DocumentRoot /var/www-example.com
    <directory /var/www-example.com>
        Options All
        AllowOverride All
        Require all granted
    </directory>
    ErrorLog ${APACHE_LOG_DIR}/ssl-example.com-error.log
    CustomLog ${APACHE_LOG_DIR}/ssl-example.com-access.log combined
</VirtualHost>
1
ответ дан ivanivan 17 August 2018 в 12:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: